为什么可以';我不能还原GitHub提交吗?
我是GitHub世界的新手。我一直在为我的编码训练营做一个项目。我让一切都按照项目的规范进行,我已经完成了。然后,我愚蠢地似乎承诺了一个旧的项目早期版本,从而覆盖了最终版本。我已经尝试从GitHub网站还原上一次提交,但界面似乎没有按照说明进行操作。我在终端上尝试了“git revert{commit}”命令,但也没有成功。我需要建议。如果可能的话,我想从命令行完成它。为什么可以';我不能还原GitHub提交吗?,github,revert,Github,Revert,我是GitHub世界的新手。我一直在为我的编码训练营做一个项目。我让一切都按照项目的规范进行,我已经完成了。然后,我愚蠢地似乎承诺了一个旧的项目早期版本,从而覆盖了最终版本。我已经尝试从GitHub网站还原上一次提交,但界面似乎没有按照说明进行操作。我在终端上尝试了“git revert{commit}”命令,但也没有成功。我需要建议。如果可能的话,我想从命令行完成它。git revert提交一个反向更改,因此从历史的角度来看,您将有两个不必要的提交,它们会相互取消。您案例中的{commit}应
git revert
提交一个反向更改,因此从历史的角度来看,您将有两个不必要的提交,它们会相互取消。您案例中的{commit}
应该是要撤消的提交的ID(=最后一个)。只要上面没有其他提交,这应该可以工作,否则您可能会遇到需要更多工作的冲突
如果除了要撤消的提交之外没有其他提交,还有一种更好的方法——只需将分支移回指向要保留的最后一个提交(=前一个)
类似这样的情况(我假设您正在处理master
,您尚未执行revert
,并且没有其他人参与):
瞧。如果您的
主机
在GitHub中受保护,则必须取消对其的保护。您可以重复此操作以进一步返回(或仅使用~2
,~3
等)在终端中尝试git revert…
时出现的错误是什么?请描述您在还原时遇到的错误。也许你可以检查一下,冲突是不存在的。非常感谢@jurez。这是我第一次在Stack Overflow中提问。我感谢您的快速响应和循序渐进的指导。谢谢你的贡献@DoudaviDo如果答案有帮助,考虑将它标记为接受,以便其他用户可以看到问题已经解决。
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