主要有两种方法用来撤销变更 —— 一是 git reset
,还有就是 git revert
。
git reset
通过把分支记录回退几个提交记录来实现撤销改动。你可以将这想象成“改写历史”。git reset
向上移动分支,原来指向的提交记录就跟从来没有提交过一样。
该命令必须有一个参数表示将当前分支撤销到何处。
git reset HEAD~1
git reset
执行后,已经提交的内容会撤销到工作区
虽然在本地分支中使用 git reset
很方便,但是这种“改写历史”的方法对大家一起使用的远程分支是无效的
为了撤销更改并分享给别人,我们需要使用 git revert
git revert HEAD
在当前分支上撤销目的分支,即在当前main
分支上撤销HEAD
指向的记录并更新当前分支main
要撤销的提交记录后面居然多了一个新提交!这是因为新提交记录 C2'
引入了更改 —— 这些更改刚好是用来撤销 C2
这个提交的。也就是说 C2'
的状态与 C1
是相同的。
revert 之后就可以把你的更改推送到远程仓库与别人分享啦。