使用git revert还原两个提交

问题描述

我需要还原以下两个提交:

user@007:~/git/project_demo$ git log --oneline
4736674 FIXED:Included src2.cpp file in code coverage.      
d7f6712 TASK:Introduced code coverage for selected project test cases. 
60542ef TASK: Implemented first version here.

如何使用此git revert命令?

我应该两次使用git revert还是一次使用git revert并传递绝对提交SHA1值。

我想提交60542ef并在此提交的基础上进行新的更改。

这里我只需要使用git revert而不是git reset。

解决方法

是的,只需按相反的时间顺序还原它们

git revert 4736674 
git revert d7f6712

如果您需要/想要将两个还原都作为一个还原提交,只需将-n添加到您的第一个还原中,它将阻止该提交,并且您将使用第二个命令还原所有内容。

根据git revert的定义,无需用力推动,因为这不会破坏历史记录。

,

如果要保留历史记录,请遵循以下命令,

git revert 4736674

git revert d7f6712

然后进行更改。


如果您不想保留历史记录,则按如下所示进行2次提交

git reset --hard HEAD~2

然后执行新更改并执行

git push -f origin master