是否可以为“git bisect”提供一组始终跳过的无效提交?

Mas*_*inn 2 git git-bisect

在长期项目中,可能会有一大堆提交,在二分期间不值得尝试,例如

  • 已知已损坏的提交
  • 属于 PR 一部分的提交不保证有效性

第二个大部分可以通过使用来处理,bisect --first-parent尽管它需要记住使用它,但第一个是更多的问题。

的脚本bisect run可以提供该功能,但它需要是一个元脚本,它要么运行子脚本(针对这种情况),要么充当 shell,在应包含提交时bisect run采用old//命令来传递new它们。skip

Jay*_*Jay 6

在某个地方创建一个文件,例如 bisect.blacklist ,其中包含错误提交的列表,如下所示:

git bisect skip bef63087981a1033239f664e6772f86080bdec44
git bisect skip 72d1195b9b3919d1468d688909985b8f398c7e70
git bisect skip aef63087981a1033239f664e6772186080bdec3e
Run Code Online (Sandbox Code Playgroud)

然后每当你开始平分 时git bisect start,也运行

git bisect replay bisect.blacklist
Run Code Online (Sandbox Code Playgroud)

之后,您应该能够正常平分(无论是手动还是通过脚本),并且 git bisect 已经知道要跳过这些提交。

如果这些提交在平分时通常被破坏,您还可以在 git 中跟踪该文件以获得额外的方便。

提示:如果您git bisect start在黑名单文件的开头添加,则不必在replay命令之前手动运行它。