[ git撤销操作 ]


结构

  1. disk 本地硬盘
  2. staging 缓存区域
  3. local 本地的git
  4. remote 远端的git 结构

1. 撤销硬盘上的修改

git restore <changed_file>

1

2. 使用了add之后

2.1撤销add

git restore --staged <changed_file>

2.1

2.2撤销add + 本地

HEAD为最近的一次修改

git checkout HEAD <changed_file>

2.2

3. 使用了commit之后

  • 注意点: reset最好在自己的个人分支使用
  • 回退2个使用HEAD~2就行

3.1撤销最近的一次commit

git reset --soft HEAD~1

3.1

3.2撤销commit + add

git reset --mixed HEAD~1

3.2

3.3撤销commit + add + 本地(注意谨慎使用!!!)

git reset --hard HEAD~1

3.3

3.4撤销实际上是增加一个commit, 但是commit的作用是相反的, 如果是推送到公共分支, 推荐使用!!!

可以撤销中间任意一个commit

# 撤销上一个commit
git revert HEAD

# 撤销指定的commit
git revert 70a0

3.4

总结:

对于公有分支的推送, 不要执行reset撤销操作, 要使用revert添加一个相反的commit来实现撤销