假设我有以下修订版本:
rev 1
引入了 bug #1rev 2
可能引入了 bug #2rev 3
可能引入了 bug #2rev 4
可能引入了 bug #2rev 5
修复了 bug #1
为了验证 bug #2 是在哪个修订版本引入的,需要先修复 bug #1。
在单次 git bisect
运行过程中,是否可以通过手动应用 rev 5
补丁来确定出首次引入 bug #2 的修订版本?手动打补丁会对二分查找造成干扰吗?
假设我有以下修订版本:
rev 1
引入了 bug #1rev 2
可能引入了 bug #2rev 3
可能引入了 bug #2rev 4
可能引入了 bug #2rev 5
修复了 bug #1为了验证 bug #2 是在哪个修订版本引入的,需要先修复 bug #1。
在单次 git bisect
运行过程中,是否可以通过手动应用 rev 5
补丁来确定出首次引入 bug #2 的修订版本?手动打补丁会对二分查找造成干扰吗?
git cherry-pick [patch-rev]
git reset --hard
git bisect [good/bad]
git-merge
替换为 git cherry-pick --no-commit
,并结合问题评论中提到的 hot-fix
示例。 - ncoghlan当你到达需要热修补程序(例如,您的示例中的rev 5)的区域时,请直接运行以下命令:
git cherry-pick --no-commit hot-fix
然后正常地继续二分。