我正在使用 git bisect 查找引发故障的提交。但是,该范围内很多提交明显与问题无关(因为它们是针对文档或单元测试的提交)。我想让 git bisect 自动跳过影响某些目录中文件的提交。有什么办法可以做到这一点吗?
您有几个选择:
忽略特定提交
git bisect
包含跳过提交的功能。 您可以指定您不想测试的提交、标签或范围。
git bisect skip 0dae5f ff049ab ...
在执行git bisect run
之前,按照以下方式操作,它将跳过您指定的内容。
指定有问题的文件夹
您还可以通过指定需要查找问题的文件夹来减少bisect
测试的提交次数。这是在bisect
过程的开始阶段,通过向git bisect start
提供额外的参数来完成的(摘自标准手册):
git bisect start -- arch/i386 include/asm-i386
Bisect只会考虑涉及指定文件夹的提交。
如果您想自动收集涉及某些文件或文件夹的提交,可以使用 git log
。例如,以下命令将为您提供修改特定文件夹中文件的提交名称:
git log --pretty=format:%H tests/ docs/
你可以利用Shell的功能将结果提供给git bisect skip
:
git bisect skip `git log --pretty=format:%H tests/ docs/`
git log
的建议非常好!不幸的是,我在Windows上,所以花哨的shell功能对我来说行不通。然而,我可以轻松地手动构建一个适当的git bisect skip
命令行。谢谢! - Frerich Raabegit bisect start
命令添加两个文件夹时,只会查找影响到这两个文件夹的提交。是否有办法查找影响到其中一个文件夹的提交?请注意不改变原文意思。 - EoghanMgit bisect start -- arch/i386 include/asm-i386
中,“arch”是什么意思? - Eduardman git-bisect
中使用的示例;它们曾经是 Linux 内核源代码树中的目录。 - chrstphrchvz