我做了一个git bisect并得到了结果
Bisecting: a merge base must be tested
[bbdaf1111eea5365c0c94d6045d6263aab718925] Fix display bug with main-stage
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
luc*_*ash 23
如果给定的好的和坏的修订版不是彼此的直接后代,则会发生这种情况.
让我们假设一个像这样的存储库(使用提交的示例性名称):
* dffa2 good-commit
* b38f4 a2
* cc19f a1
| * d1f17 bad-commit
| * fbd1f b2
| * f66cc b1
|/
* 09f66 merge-base-commit
Run Code Online (Sandbox Code Playgroud)
由于消息使用术语"合并基础",因此理解该术语以理解消息可能会有所帮助.两个或多个提交的"合并基础"是最新提交,它是所有提交的父级.
因此,如果这些提交将被合并,则"合并基础"与这些提交之间的所有更改将合并在一起.作为"merge base"的父级的每个提交都与合并无关,它已经是所有相关提交的父级.
所描述的消息将在以下情况下发生:
$ git bisect start
$ git bisect good good-commit
$ git bisect bad bad-commit
Bisecting: a merge base must be tested
[09f66] merge-base-commit
Run Code Online (Sandbox Code Playgroud)
二分法的作用是找到引入问题(导致bad
状态)的提交,在这种情况下可能会导致问题:
good-commit
和之间没有引入Bugbad-commit
假设merge-base-commit中存在错误.在这种情况下,将无法找到在良好提交和错误提交之间的差异中引入错误的提交.取而代之的是提交a1
,a2
并good-commit
解决了问题,如果你认为合并基础是坏的,那将会发生什么:
$ git bisect bad
The merge base merge-base-commit is bad.
This means the bug has been fixed between 09f66 and [dffa2].
Run Code Online (Sandbox Code Playgroud)
merge-base-commit
和之间引入了问题bad-commit
另一方面,如果合并基础良好,则问题被引入b1
,b2
或bad-commit
.bisect
然后将继续之间,merge-base-commit
并bad-commit
在这些提交之间选择提交并测试是否良好:
$ git bisect good
Bisecting: 0 revisions left to test after this (roughly 1 step)
[fbd1f] b2
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2542 次 |
最近记录: |