我正在学习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
我有一个运行某些测试的脚本,如果我手动运行测试并将每个提交标记为bad和good,它将遵循以下步骤:
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 -...
刚刚发现问题: