代码回滚

代码回滚

Reset:常用在私有分支上

作用:在提交层面上,reset 将一个分支的末端指向另一个提交。

常用标记 --soft – 缓存区和工作目录都不会被改变 --mixed – 默认选项。缓存区和你指定的提交同步,但工作目录不受影响 --hard – 缓存区和工作目录都同步到你指定的提交

场景:

  1. 开发合并发生冲突时,想和仓库代码一致,完全舍弃你没有提交的改动,使用git reset HEAD --hard

Checkout

作用:切换分支或恢复工作区文件

常用命令

  1. git checkout hotfix

  2. git checkout file

  3. git checkout HEAD~2 //快速查看旧版本

Revert:常用在公共分支上

作用:撤销一个/多个提交的同时会创建一个新的提交

常用命令:

  1. git revert

场景:

  1. 提交一个更新 commit id 为2e921a35020d022284d257464297d4a22c7f8b56

  2. 执行命令 git revert 2e921a35020d022284d257464297d4a22c7f8b56

  3. 保存即可

说明:

  1. 撤销生成的提交是可以撤销的 先提交文件A,再撤销提交文件A(A删除),最后撤销"撤销操作",文件A可以恢复

  2. 撤销并不一定是最新的一次提交

图示

注意

  1. git revert 可以用在公共分支上,git reset 应该用在私有分支上。

  2. git revert 不支持文件层面的操作

参考资料

Last updated