【问题标题】:Checking out previous commit with Github and VS Code使用 Github 和 VS Code 检查之前的提交
【发布时间】:2020-12-28 06:24:47
【问题描述】:

我不小心向我在 GitHub 中的项目的主人提交了我不应该提交的内容。我现在正在尝试使用 VS Code 签出到以前的提交。我得到了那个提交的 URL。我确实在 VS Code 中设置了遥控器,但不知道该怎么做。

我的想法是去结帐并输入提交的 URL。然后我会切换到主分支并提交这个。但这给了我一个错误"Can't push refs to remote"

【问题讨论】:

  • 如果没有更清楚地了解您想要什么以及到目前为止发生的事情,很难帮助解决 git 问题。
  • 我正在尝试恢复到主分支上的先前提交。
  • "Revert" 在 git 中有一个特殊的含义。你的意思是“重置”吗?
  • 您想撤消提交(还原),还是表现得像从未完成过一样?
  • 对不起,我意识到我说错了。我的工作副本是正确的。我的远程副本有一个完全错误的提交,因为另一个项目被提交到存储库。所以,我需要撤消提交

标签: git visual-studio-code git-branch git-commit


【解决方案1】:

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

2- 写:

$ git log

它将向您显示最近提交的列表,将您想要返回的提交 ID 复制到它。 (上面的任何提交都将被重置)

$ git reset [commitID]

现在您的更改尚未提交。

您现在可以结帐到您的工作所在的分支,并暂存您的更改并提交它们。


如果问题出在您的遥控器上(正如您在 cmets 中提到的)。

方法不止一种。 首先将本地与远程同步 然后用同样的方法用 git log 来获取 commit id。 使用 git revert 修复你不需要的提交

$ git revert [commitID] 

...

【讨论】:

    【解决方案2】:

    从远程历史记录中删除提交并不容易;它不想让你这样做。在问题所在的分支上,在你的机器上工作,你可以fetch,然后pull,然后reset --hard回到不需要的提交之前,然后push——但你必须用力推动,克服遥控器不愿意让你这样做的问题。

    【讨论】:

      【解决方案3】:

      我通过在 VSCode 中检查以前的提交发现了这个问题如果你想在 vscode 中这样做,有一个很好的扩展:https://marketplace.visualstudio.com/items?itemName=donjayamanne.githistory

      在提交列表中的“更多”下(见下面的截图)你可以签出一个特定的提交

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-10-27
        • 2012-07-08
        • 1970-01-01
        • 2016-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多