【问题标题】:How do I reliably undo the last git pull command?如何可靠地撤消最后一个 git pull 命令?
【发布时间】:2017-05-27 02:31:45
【问题描述】:

在极少数情况下,git pull 会导致我们的网站出现问题,我需要快速倒带时钟,以便开发人员解决问题。我试过git reset HEAD@{1} 但这并没有奏效,因为某些文件仍然被更改。好像它只回滚一些文件。

在最近的git pull 命令之前,我是否可以调用一个命令来可靠地将文件还原回?

【问题讨论】:

标签: git github git-pull


【解决方案1】:

找到您想要保留的最新提交,并计算在该提交之后出现了多少提交。例如,假设您最新的git pull 带来了三个新的提交,并且您想要核对它们。在这种情况下你可以使用git reset --hard:

git reset --hard HEAD~3

只需将3 替换为您想要删除的提交即可。

在此之后您打算做什么是一个挥之不去的问题。现在远程分支仍然会有这三个不需要的提交。但是假设你通过重新提交来解决问题,你可以避免重写历史的问题。

【讨论】:

    【解决方案2】:

    你只是在做吗

    git reset HEAD@{1}
    

    ?如果是这样,这将使用 --mixed 模式作为默认模式,这可以解释为什么您会看到更改的文件。我怀疑你应该使用

    git reset --hard HEAD@{1}
    

    这样它也会重置您的工作树。

    【讨论】:

      猜你喜欢
      • 2016-02-08
      • 2013-11-20
      • 2011-08-14
      • 2012-08-21
      • 1970-01-01
      • 2012-06-10
      • 2011-01-13
      • 1970-01-01
      相关资源
      最近更新 更多