使用 git revert 恢复两个提交 [重复]

Posted

技术标签:

【中文标题】使用 git revert 恢复两个提交 [重复]【英文标题】:Use of git revert for reverting two commits [duplicate] 【发布时间】:2021-01-22 07:08:47 【问题描述】:

我需要恢复以下两个提交:

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。

【问题讨论】:

我认为this answer 可以帮助你。 【参考方案1】:

是的,只需按时间倒序恢复它们

git revert 4736674 
git revert d7f6712

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

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

【讨论】:

【参考方案2】:

如果您想保留历史记录,请按照以下命令,

git revert 4736674

git revert d7f6712

然后进行更改。


如果您不想保留历史记录,请按以下方式进行 2 次提交

git reset --hard HEAD~2

然后执行您的新更改并执行

git push -f origin master 

【讨论】:

以上是关于使用 git revert 恢复两个提交 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何“取消还原”已还原的 Git 提交?

git revert和git reset的区别

如何恢复 3 次 git 提交 [重复]

git revert 某一个文件

git reset 之后的恢复

git revert --no-commit 不分期