2

git bisect开始会话时我通常的工作流程是:

git bisect start          # start a bisect session
git bisect bad            # I noticed that the current state is broken

现在,我通常知道过去的事情是可行的,但我还不知道哪个版本好,所以我通常想将我的工作树恢复到旧状态,构建、测试、重复,直到找到一个工作版本我可以用 标记git bisect good

执行“将我的工作树恢复到旧状态”步骤的最佳方法是什么?git reset --hard <some_good_rev>? git checkout <some_good_rev>? 还有什么?请证明你的回答。

4

2 回答 2

8

我通常不知道好的转速在哪里,所以我必须找到它。猜猜多远可能是好的。比方说,32转。从分支的尖端开始,并使用干净的工作目录:

$ git checkout HEAD~32

运行测试。如果它是一个很好的转速,开始平分。如果不是,请再返回一些:

$ git checkout HEAD~32

冲洗,起泡,重复。

为什么是“git checkout”?因为“git reset”会改变分支指向的提交作为它的“tip”,但 git checkout 不会。

于 2010-01-19T19:54:44.113 回答
1

如果您不确定该功能工作的任何版本(引入该功能的提交?),您似乎失去了很多(全部?)平分的好处。如果您确实知道该功能至少有一次提交,即使它不一定是该功能有效的最新提交,也只需将该提交标记为良好。否则,你基本上是在自己做一个平分。

于 2010-01-19T19:57:17.003 回答