1.安装git
git:查看是否已经安装
sudo apt install git :安装
2.创建版本库
git init:将一个普通目录变成版本库
3.将文件添加到版本库
git add filename :将文件添加到缓存区
git commit -m "日志" :提交文件到版本库【仓库】
*** 请告诉我你是谁。 #不知道主人是谁,则需要配置用户名和邮箱
#注意:用户名和邮箱来自github上的注册
运行
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
4.时光穿梭机(新旧版本切换)
git status:查看仓库当前的状态
git diff filename:查看仓库具体的改动
版本回退
在git中,用HEAD表示当前版本,上一个版本是HEAD^,上上个版本是HEAD^^,如果向上找100个版本,则表示为HEAD~100.
git log: 查看提交历史记录,以便于确定回到哪个历史版本
git log --pretty=oneline: 只显示commit id 和 版本日志 (一行显示)
git reflog: 查看历史执行过的git操作,从上往下寻找第一个commit的操作,则是未来的最新的版本
git reset --hard 版本号【commit id】: 版本回退
撤销修改
三种情况:
1.修改了文件内容,但是还没有添加到暂存区
#丢弃工作区的修改
位于分支 master
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
##回到最近一次git commit或git add时的状态
修改: text.txt
2.修改了内容,还添加到了暂存区,但是还没有提交
a.撤销掉暂存区的修改
位于分支 master
要提交的变更:
(使用 "git reset HEAD <文件>..." 以取消暂存)
修改: text.txt
b.丢弃工作区的修改
重复 操作 1
3.直接将修改的内容提交到了版本库
利用版本回退
5.远程仓库
建立本地终端和github的网络连接
1.创建github账号
2.生成ssh key【密钥,建立本地和网络之间的连接】cd
终端输入命令:ssh-keygen -t rsa -C "github的注册邮箱"
后面会要求设置仓库密码等(可忽略),一直回车.
3.添加公钥到github
获取公钥:cat id_rsa.pub
复制公钥添加到github: github网站-->个人-->setting-->SSH and GPG keys-->new ssh key
4.检测是否添加成功
命令:ssh -T git@github.com
5.添加私钥
命令:ssh-add id_rsa
添加公钥失败时: 解决办法网址 https://blog.csdn.net/laner415/article/details/52966890
1. ssh-add -D
2. rm -r ~/.ssh
3. 再试一次以上命令:ssh-keygen -t rsa -C "github的注册邮箱"
添加密钥 测试 若继续失败,执行下面命令
4. eval "$(ssh-agent -s)"
5. ssh-add
6. 再测试 ssh -T git@github.com
建立远程仓库
github网站-->个人页面-->页面右上角的"+"号-->new repository
创建成功后:
https 和 git两种连接 ; https推送时需要github用户名和密码
远程仓库地址: 例: git@github.com:Deaseyy/repository1.git
将本地仓库和远程仓库联系起来
前提: 首先创建了本地仓库(版本库),进入本地仓库目录:
1.建立连接:
命令 git remote add origin git@github.com:Deaseyy/repository1.git(远程仓库地址)
命令 git remote -v : 查看远程仓库(地址) ,查看是否关联好
2.推送本地master分支并与远程master产生关联:
命令 git push -u origin master (第一次推送本地仓库内容到远程仓库,之后推送时去掉-u)
ps: 推送相当于更新远程仓库的文件, 需要本地仓库已经包含远程仓库的所有最新文件,否则不能更新,需要先pull远程仓库的文件再push.
总结:
-
要关联一个远程仓库,使用命令 git remote add origin git@github.com:username/repoName.git
-
关联成功之后 ,使用命令git push -u origin master第一次推送master分支的内容到远程仓库
-
以后,每次本地提交之后,只需要使用命令git push origin master推送最新的修改
【本地修改----> add到暂存区 ---> commit到本地仓库 ---> push到远程仓库】
从远程仓库克隆
查找远程仓库地址
命令 git clone git@github.com:Deaseyy/repository1.git
#克隆到本地之后,就可以任意修改本地工作区中的文件,修改完成之后,首先将修改add到暂存区,然后将暂存区中的修改提交到本地仓库,最后将本地仓库中的修改推送到远程仓库
6.分支管理
git branch 查看当前仓库所有分支
创建和合并分支
git branch 查看分支
git branch dev 创建分支dev
git branch -d dev 删除分支dev
git branch -D dev 强制删除分支dev
git checkout dev 切换到分支dev
git checkout -b dev 创建并切换到该分支
git merge dev 合并子分支dev到当前分支
git merge --no-ff -m "log" dev 合并分支(有历史记录)
个人理解: 1.本地子分支修改后合并到master主分支 (合并冲突时需先解决冲突)
2.master主分支再push推送到远程仓库分支