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

现在的问题是 bisect 工具做出的第一个猜测是:

51450765b77e07b853b7efd0799aaeb2fbb5a0ea at 21 May 2015

这超出了最初的 2 个提交日期。怎么会这样?

4

2 回答 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

包含来自分支的提交的原因master是,那些也可能引入了错误。

于 2017-09-07T14:27:35.523 回答
2

git bisect使用提交之间的“父”关系,而不是它们的日期。

使用或等操作git commit --amend,您可以创建日期与提交序列不匹配的提交序列。git rebasegit cherry-pick


您可以检查图形工具是否介于和51450765b77之间,或者在终端中使用:6a1d1ec2ac4ac0git log --graph --oneline

git log --graph --oneline [firstgoodcommit]..[badcommit]
于 2017-09-07T14:11:04.397 回答