【问题标题】:I want to revert my master branch to state 8 commits ago我想将我的主分支恢复到 8 次提交前的状态
【发布时间】:2011-03-21 15:31:39
【问题描述】:

我刚刚意识到我在最近 8 次提交中的某个地方引入了内存泄漏。 最简单的解决方案是恢复到 8 次提交之前,然后小心地添加更改 回来。最简单的方法是什么?

谢谢!

【问题讨论】:

    标签: git revert


    【解决方案1】:

    看看git bisect。这听起来正是您正在寻找的。​​p>

    基本上,你告诉它你历史上一个已知的好点和一个已知的坏点,然后它会帮助你执行二进制搜索,直到找到有问题的提交。

    这里有一个使用教程:http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#using-bisect

    但是,如果您不想这样做,请在您现在所在的位置创建一个临时分支,然后执行一堆 git reset HEAD^ 以一次提交一个提交,或者执行 git reset HEAD~8 和然后 git cherry-pick <sha1> 用于您和您的临时提交之间的每个后续提交。

    【讨论】:

      【解决方案2】:

      将你的 master 克隆到另一个分支,然后在 master git reset --hard 上克隆到有问题的提交。然后使用git cherry pick 将每个从备份分支恢复的提交引入到主分支并检查。如果一切正常,则继续下一次提交,依此类推。

      如果您不熟悉这些命令,请在实际继续之前阅读我所说的命令。 :-)

      【讨论】:

      • 我想你的意思是git reset,而不是git revert
      • 我解决了这个问题。如果您也想丢弃工作目录更改,Git reset 很有用。
      猜你喜欢
      • 2022-12-17
      • 2011-06-27
      • 2023-01-11
      • 1970-01-01
      • 2014-07-06
      • 1970-01-01
      • 2013-08-02
      • 1970-01-01
      • 2015-03-09
      相关资源
      最近更新 更多