为什么我不能还原GitHub提交?

时间:2020-08-24 18:58:51

标签: github revert

我是GitHub世界的新手。我一直在为我的代码训练营设计一个项目。我所做的一切都恰好符合项目的规格要求,我已经完成了一切。然后,我似乎愚蠢地提交了该项目的早期版本,从而覆盖了最终版本。我试图还原GitHub网站上的最后一次提交,但界面似乎未遵循说明。我从终端尝试了“ git revert {commit#}'”命令,但是那也不起作用。我需要建议。如果可能的话,我想从命令行完成它。

1 个答案:

答案 0 :(得分:1)

git revert提交了一个反向更改,因此从历史记录的角度来看,您将有两个相互抵消的不必要的提交。您所用的{commit#}应该是您要撤消的提交的ID(=最后一个)。只要没有其他提交,此方法就应该起作用,否则您可能会遇到需要更多工作的冲突。

如果除了要撤消的提交之外没有其他提交,还有一种更好的方法-只需将分支移回指向您要保留的最后一个提交(=上一个)。

这样的事情(我假设您正在master上工作,您尚未做revert并且没有其他人参与):

git checkout -b tmp_branch master~1
git branch -f master tmp_branch
git checkout master
git branch -D tmp_branch
git push -f origin master

瞧瞧。如果您的master在GitHub中受到保护,则必须取消对它的保护。您可以重复此操作以返回更远的位置(或仅使用~2~3等)