Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么可以';我不能还原GitHub提交吗?_Github_Revert - Fatal编程技术网

为什么可以';我不能还原GitHub提交吗?

为什么可以';我不能还原GitHub提交吗?,github,revert,Github,Revert,我是GitHub世界的新手。我一直在为我的编码训练营做一个项目。我让一切都按照项目的规范进行,我已经完成了。然后,我愚蠢地似乎承诺了一个旧的项目早期版本,从而覆盖了最终版本。我已经尝试从GitHub网站还原上一次提交,但界面似乎没有按照说明进行操作。我在终端上尝试了“git revert{commit}”命令,但也没有成功。我需要建议。如果可能的话,我想从命令行完成它。git revert提交一个反向更改,因此从历史的角度来看,您将有两个不必要的提交,它们会相互取消。您案例中的{commit}应

我是GitHub世界的新手。我一直在为我的编码训练营做一个项目。我让一切都按照项目的规范进行,我已经完成了。然后,我愚蠢地似乎承诺了一个旧的项目早期版本,从而覆盖了最终版本。我已经尝试从GitHub网站还原上一次提交,但界面似乎没有按照说明进行操作。我在终端上尝试了“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