git bisect手动vs git bisect运行

问题描述 投票:0回答:1

我正在学习git bisect

让我们猜测以下线性git历史:

* A commit-1     # HEAD
* B commit-2
* C commit-3
* D commit-4     # First bad commit
* E commit-5
* F commit-6
* G commit-7
* H commit-8     # Is good

然后,我开始对分:

git bisect start
git bisect bad HEAD      # A commit-1
git bisect good H        # H commit-8

我有一个运行某些测试的脚本,如果我手动运行测试并将每个提交标记为badgood,它将遵循以下步骤:

E commit-5     # OK
C commit-3     # FAIL
D commit-4     # FAIL

所以,结束时说D commit-4是第一个错误的提交,这是正确的


但是,如果我使用git bisect run ../outside/test.sh,它将执行以下操作:

E commit-5     # OK
C commit-3     # FAIL
B commit-2     # FAIL
A commit-1     # FAIL

A commit-1是第一个错误的提交,这是错误的>>。

因此,如果我在这里理解二进制搜索,则当C commit-3错误时,第一个错误提交应该是它本身或在下面。

我在这里想念的是什么?为什么它们表现出不同的行为?看起来git bisect run正在运行其他算法。

我的git版本是:2.19.0

谢谢

[我正在学习git bisect,让我们猜测以下线性git历史:* A commit-1#HEAD * B commit-2 * C commit-3 * D commit-4#第一次错误提交* E commit-5 * F commit-6 * G commit -...

git binary-search-tree git-bisect
1个回答
0
投票

刚刚发现问题:

© www.soinside.com 2019 - 2024. All rights reserved.