假设我有四个提交记录
A-->B-->C-->D
,但是提交 C 是错误的。我该如何撤销提交 C,而不会丢失提交 D 的更改?我了解 git-revert 和撤消提交 的基本功能,但我无法找出如何(如果有可能)在不必重新执行其后的更改的情况下撤销特定的提交(不是最新的提交)。
git revert
的作用:它会反向应用(即撤销)某个提交。找到有问题的提交C
,运行git revert <定位提交 C 的内容>
,Git 会将一个新的提交应用到HEAD
上,以撤销在C
中所做的任何操作。(这与 Mercurial 正好相反,其中hg revert
意味着“恢复某些文件”,而您需要使用hg backout
来撤消特定的提交。同样的撤销动词,完全不同的含义。) - torekA->B->D
,而是A->B->C->D->E
。 - Ray