【发布时间】:2011-03-21 15:31:39
【问题描述】:
我刚刚意识到我在最近 8 次提交中的某个地方引入了内存泄漏。 最简单的解决方案是恢复到 8 次提交之前,然后小心地添加更改 回来。最简单的方法是什么?
谢谢!
【问题讨论】:
我刚刚意识到我在最近 8 次提交中的某个地方引入了内存泄漏。 最简单的解决方案是恢复到 8 次提交之前,然后小心地添加更改 回来。最简单的方法是什么?
谢谢!
【问题讨论】:
看看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> 用于您和您的临时提交之间的每个后续提交。
【讨论】:
将你的 master 克隆到另一个分支,然后在 master git reset --hard 上克隆到有问题的提交。然后使用git cherry pick 将每个从备份分支恢复的提交引入到主分支并检查。如果一切正常,则继续下一次提交,依此类推。
如果您不熟悉这些命令,请在实际继续之前阅读我所说的命令。 :-)
【讨论】:
git reset,而不是git revert。