git - 版本回退

已经提交,没有 push

1
2
3
4
5
-- 撤销 commit
git reset --soft

-- 撤销 commit 和 add 两个动作
git reset --mixed

已经提交,并且 push

1
2
3
4
5
-- 撤销并舍弃版本号之后的提交记录(谨慎使用)
git reset --hard

-- 撤销,但保留提交记录
git revert

实际操作

(1)撤销 commit

  • 复制版本号:IDEA操作/ git log
  • 然后,git reset --soft 要去到的版本号

(2)撤销 commit 和 add 两个动作

  • 如果在当前版本有新建文件的操作,git reset --mixed 要去到的版本号会把新建的文件移出工作区

(3)撤销并舍弃版本号之后的提交记录(谨慎使用)

  • 复制要去到的版本号

  • 拒绝推送,因为本地分支版本 << 远程分支
  • 如果想推送,只能强制推送 git push -f

(4)撤销,但保留提交记录

  • 复制要移除的版本号

  • git revert 要移除的版本号,回车,会进入编辑状态

  • 修改第一行的名称后,Esc + :wq

  • 之前记录被保留,重新生成了一次提交