【问题标题】:How to revert the last 2 commits done on Git如何恢复在 Git 上完成的最后 2 次提交
【发布时间】:2017-12-16 06:23:54
【问题描述】:

我在这里遇到的情况是,另一个协作者完成了 2 次提交,这似乎是错误的文件。我是存储库的所有者,并希望恢复其他合作者完成的这 2 次提交。在我的终端上,我尝试了以下操作。

git log -2 它只是说我所做的最后 2 次提交。我想知道如何重置最后 2 次提交并将 HEAD 更改为前 2 次提交。

【问题讨论】:

标签: git git-revert


【解决方案1】:

使用git revert:

git revert A^..B

其中A 是要恢复的两个提交中的第一个的哈希,B 是第二个提交的哈希。即使在进行了两次提交后,在远程分支上进行了其他提交,这种方法也将起作用。

如果此分支未与您也可以使用的任何人共享

git reset --hard HEAD~2

但请注意不要在公共共享分支上使用 git reset --hard。对于共享分支,如上所述使用git revert 会更安全。

【讨论】:

  • A^ 应该替换为提交哈希?
  • @RaMaJ 是的,将AB 替换为第一次和第二次提交的提交哈希。
  • A 是较旧的提交,B 是较新的提交,对吧?只要确保我收到订单 =)
【解决方案2】:

试试这个,但要确定你想做什么

git reset --hard HEAD~2

git reset --hard 是不可逆转的变化。也可能是了解git reset --hard/--soft/ --mixed的好时机

我还建议通过this

【讨论】:

    【解决方案3】:

    只需将其重置为 2 次提交之前的提交哈希:

    git reset <commit-hash>
    

    这将删除commit-hash 之后的提交并将更改带到您的工作区。如果您不希望进行更改,可以传递 --hard 选项。

    【讨论】:

      猜你喜欢
      • 2021-11-19
      • 2011-07-12
      • 2013-11-22
      • 1970-01-01
      • 2018-11-10
      • 2012-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多