git进阶学习:git reset
git reset
作用
- 重置回退
- 压缩提交
- 撤销
- 撤销add
- 撤销commit
原理:
-
移动 HEAD 分支的指向 (若指定了 –soft,则到此停止)
-
使索引看起来像 HEAD (若未指定 –hard,则到此停止)
-
使工作目录看起来像索引
-
-soft :仅修改HEAD
-
-[mixed]:(默认)取消暂存所有的东西,回到git add 和 git commit 命令执行之前。
-
-hard:将当前提交替换工作区
用法
重置回退
- git reset 提交id :重置为该提交ID
- git reset HEAD^x: ^代表上x次
- git reset HEAD~x:~x代表上x次,不带x是1
- HEAD~2^ 和 HEAD~3等价,~3,~2,~1,HEAD,指定了四次提交。
撤销
- 特点:不用移动HEAD,HEAD所指的文件版本不变。
- 撤销暂存文件(撤销add)
- git reset fileName
- 撤销提交(撤销commit)
- git reset commitId
压缩提交
移动HEAD至需要被压缩的提交的前一个提交,然后直接提交,中间的提交都将被压缩。
- git reset *–*soft 需要被压缩的前一个提交
- git commit 提交