使用Github和VS代码签出以前的提交

使用Github和VS代码签出以前的提交,git,visual-studio-code,git-branch,git-commit,Git,Visual Studio Code,Git Branch,Git Commit,我无意中向GitHub中的项目负责人做出了一个我不应该做的承诺。我现在尝试使用VS代码签出到以前的提交。我得到了那个提交的URL。我确实在VS代码中设置了遥控器,但不知道如何设置 我的想法是去签出并输入提交的URL。然后,我将切换到主分支并提交此操作。但这给了我一个错误“无法将引用推送到远程”1-在VS中打开终端(确保在项目中打开终端) 2-写: $ git log 它将向您显示最近提交的列表,并复制要返回的提交ID。 (上述任何提交都将被重置) 现在您的更改尚未提交 您现在可以签出到您的工作

我无意中向GitHub中的项目负责人做出了一个我不应该做的承诺。我现在尝试使用VS代码签出到以前的提交。我得到了那个提交的URL。我确实在VS代码中设置了遥控器,但不知道如何设置


我的想法是去签出并输入提交的URL。然后,我将切换到主分支并提交此操作。但这给了我一个错误
“无法将引用推送到远程”

1-在VS中打开终端(确保在项目中打开终端)

2-写:

$ git log
它将向您显示最近提交的列表,并复制要返回的提交ID。 (上述任何提交都将被重置)

现在您的更改尚未提交

您现在可以签出到您的工作所在的分支,并将您的更改阶段化并提交


如果问题在您的遥控器中(正如您在评论中提到的)

有不止一种方法。 首先将本地与远程同步 然后,使用与git日志相同的方法来获取提交id。 使用git revert修复不需要的提交

$ git revert [commitID] 

…从远程服务器的历史记录中删除提交并不容易;它不想让你这么做。在问题所在的分支上,在您的机器上工作时,您可以
获取
,然后
,然后
重置--硬
返回到不需要的提交之前,然后
-但您必须用力推,为了克服远程服务器不愿意让您这样做的问题。

如果不清楚您想要什么以及到目前为止发生了什么,就很难帮助解决git问题。我正在尝试恢复到主分支上以前的提交。“恢复”在git中有专门的含义。你真的是说“重置”吗?你想撤销提交(还原),还是表现得好像从来没有做过一样?对不起,我意识到我的措辞是错误的。我的工作副本是正确的。我的远程副本的提交是完全错误的,因为另一个项目已提交到存储库。所以,我需要撤销一个提交
$ git revert [commitID]