参考文档:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
1.git回退操作
(1)本地修改未add:git checkout -- <file> (相当于本地撤销修改)
(2)本地修改并add:git reset HEAD <file> (相当于回到本地修改未add状态)
(3)commit之后的修改:git reset --hard HEAD^ (相当于回退到上一版本,顺便把工作区的文件更新,文件恢复到上一次commit之后的状态)
注意:在Git中,用HEAD
表示当前版本,上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
。
2.commit后的修改可以进行时光穿梭
(1)HEAD
指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
。
(2)穿梭前,用git log
可以查看提交历史,以便确定要回退到哪个版本。
(3)要重返未来,用git reflog
查看命令历史,以便确定要回到未来的哪个版本。
3.本地创建的分支关联远端
(1)本地push到远端时进行:git push --set-upstream origin feature/GZBM-1670
(2)对于远端已有的分支建立联系:git branch --set-upstream-to=origin/feature/GZBM-1670
(3)在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name
,本地和远程分支的名称最好一致
4.开发过程中多分支切换
(1)当手头工作没有完成时,先把工作现场git stash
一下。
(2)工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:
一是用git stash apply
恢复,但是恢复后,stash内容并不删除,你需要用git stash drop
来删除;
另一种方式是用git stash pop
,恢复的同时把stash内容也删了。
(3)
你可以多次stash,恢复的时候,先用git stash list
查看,然后恢复指定的stash,用命令:
$ git stash apply stash@{0}
5.查看远端分支操作权限
git remote -v 查看抓取和推送的权限
6.删除分支
(1)已经合并的分支删除:git branch -d 分支名
(2)未合并的分支强制删除:git branch -D 分支名