Git Bisect第一次猜测超出范围

4

我正在尝试使用git bisect。

我已经确定了有问题的提交记录:

2ac4ac0a46d902235a51216b24257a977877979a at 19 Oct 2016

我找到的第一个好的提交是:
6a1d1ec5599d011a75df18075feb1819f1ad8877 at 9 Jan 2016

所以我运行:
> git bisect start
> git bisect good 6a1d1ec5599d011a75df18075feb1819f1ad8877 
> git bisect bad 2ac4ac0a46d902235a51216b24257a977877979a
Bisecting: 3639 revisions left to test after this (roughly 12 steps)
[51450765b77e07b853b7efd0799aaeb2fbb5a0ea] only show canvas-player controls when not playing && controls = true

现在的问题是二分工具所做的第一个猜测是:

51450765b77e07b853b7efd0799aaeb2fbb5a0ea at 21 May 2015

这是超出最初两个提交日期的范围之外。这怎么可能呢?

你的问题得到了解答吗?如果是,请考虑接受一个答案。如果不是,请提供更多信息,以便我们帮助您解决问题。 - AnimiVulpis
2个回答

3

假设有以下情况的可能性:

* d4349a4 (master, HEAD) Commit 10
* 9816794 (broken) Commit 9
* abaf79f Commit 8
*   e76f38f Merge branch 'branch1'
|\
| * e897f8e (branch1) Branch 5
| * d8b71a8 Branch 4
| * 1832b61 Branch 3
| * a821494 (working) Branch 2
| * 12c87e1 Branch 1
* | 2b94daa Commit 7
* | 515bea5 Commit 6
* | 516af15 Commit 5
* | 5a33f68 Commit 4
* | 66c18bc Commit 3
|/
* 7d10cd8 Commit 2
* 71bc62e Commit 1

如果你运行git bisect broken working,然后再运行git bisect visualize --oneline查看当前剩余的疑点),你会看到类似下面的内容:
9816794 (broken, refs/bisect/bad) Commit 9
abaf79f Commit 8
e76f38f Merge branch 'branch1'
e897f8e (branch1) Branch 5
d8b71a8 Branch 4
1832b61 Branch 3
2b94daa (HEAD) Commit 7
515bea5 Commit 6
516af15 Commit 5
5a33f68 Commit 4
66c18bc Commit 3
< p > master 分支提交包含在内的原因是,这些提交也可能引入了错误。 < /p >

2

git bisect 使用提交之间的 "parent" 关系而不是它们的日期。

通过操作如 git commit --amendgit rebasegit cherry-pick,您可以创建一系列提交,其中日期与提交序列不匹配。


您可以使用图形工具检查 51450765b77 是否位于 6a1d1ec2ac4ac0 之间,或者在终端中使用 git log --graph --oneline 命令:

git log --graph --oneline [firstgoodcommit]..[badcommit]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接