【问题标题】:How can I cut down a git bisect run using file paths?如何使用文件路径减少 git bisect 运行?
【发布时间】:2011-03-11 21:44:08
【问题描述】:

我正在使用git bisect 来查找导致失败的提交。但是,该范围内的许多提交肯定是无关紧要的(因为它们是对文档或单元测试的提交)。我想让 git bisect 自动跳过影响某些目录中文件的提交。这有可能吗?

【问题讨论】:

    标签: git git-bisect


    【解决方案1】:

    你有几个选择:

    1. 忽略特定的提交

      git bisect 包含跳过提交的功能。你可以指定你不想测试的提交、标签、范围

       git bisect skip 0dae5f ff049ab ...
      

      在您git bisect run 之前执行此操作,它应该会跳过您指定的内容。

    2. 指定来源损坏的文件夹

      您还可以通过指定应该在哪些文件夹中查找问题来减少提交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 命令行。谢谢!
    • @FrerichRaabe:什么,你的 git 没有附带 bash 的副本?
    • hmmm 添加 2 个文件夹到 git bisect start 只查看涉及两个文件夹的提交。有没有办法查看触及任一文件夹的提交?
    • 什么是“拱门”?在git bisect start -- arch/i386 include/asm-i386
    • @Eduard 这些是man git-bisect 中使用的示例;它们曾经是 Linux 内核源代码树中的目录。
    猜你喜欢
    • 2020-07-26
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 2020-07-19
    • 1970-01-01
    • 2013-04-24
    • 2010-11-30
    • 2013-12-17
    相关资源
    最近更新 更多