在版本迭代开发过程中,相信很多人都会有过错误提交的时候(至少良许有过几次这样的体验)。这种情况下,菜鸟程序员可能就会虎驱一震,紧张得不知所措。而资深程序员就会微微一笑,摸一摸锃亮的脑门,然后默默的进行版本回退。
对于版本的回退,我们经常会用到两个命令:
- git reset
- git revert
那这两个命令有何区别呢?先不急,我们后文详细介绍。

git reset
假如我们的系统现在有如下几个提交:

其中:A 和 B 是正常提交,而 C 和 D 是错误提交。现在,我们想把 C 和 D 回退掉。而此时,HEAD 指针指向 D 提交(5lk4er)。我们只需将 HEAD 指针移动到 B 提交(a0fvf8),就可以达到目的。
只要有 git 基础的朋友,一定会想到 git reset 命令。完整命令如下:
git reset --hard a0fvf8
命令运行之后,HEAD 指针就会移动到 B 提交下,如下图示:

而这个时候,远程仓库的 HEAD 指针依然不变,仍在 D 提交上。所以,如果直接使用

本文详细介绍了在版本控制中如何使用 `git reset` 和 `git revert` 进行代码回滚。重点阐述了两者之间的区别:`git reset` 会丢失后续提交,而 `git revert` 通过创建新提交来恢复到目标状态。文章通过实例展示了在不同场景下如何正确使用这两个命令,并推荐在企业环境中优先使用 `git revert`。

1373

被折叠的 条评论
为什么被折叠?



