git 对分不响应命令

git bisect not responding to commands

我在一个名为 redesign-test-fixes 的单独分支上,我 运行 git bisect start。在那之后,我测试了我的错误和 运行 git bisect bad。终端不打印任何输出。然后我运行git bisect good。同样,终端上没有打印输出。好像 bisect 不是 运行 开头的。通常我希望终端输出有关剩余步数的信息。出了什么问题,我该如何解决?我是否处于某种 git 状态,不允许我 运行 平分。

git 状态响应:

On branch redesign-test-fixes
nothing to commit, working directory clean

但是,如果我 运行 git bisect start git 状态响应为:

On branch redesign-test-fixes
You are currently bisecting, started from branch 'redesign-test-fixes'.
  (use "git bisect reset" to get back to the original branch)

nothing to commit, working directory clean

您使用的 git bisect 不正确。输入 git bisect start 后,您需要提供一系列提交供 git bisect 使用。此范围由 "good" 提交定义,您确定错误不会出现,然后是 "bad" 提交,您认为错误肯定存在。因此,您的使用应该像这样开始:

git bisect start
git bisect good <SHA-1 of good commit>
git bisect bad  <SHA-1 of bad commit>

假设您在好与坏之间有 20 次提交,您应该会看到如下所示的输出:

Bisecting: 10 revisions left to test after this (roughly 4 steps)

之所以还剩下 10 个修订是因为 Git 已经检查了您选择的范围内的中间提交,并且它知道有 最多 10需要检查的提交以找到引入错误的提交。

接下来,您需要在这个中间提交时检查您的应用程序并确定是否存在错误。如果您没有找到错误,请输入:

git bisect good

如果您确实看到错误然后输入:

git bisect bad

这将再次向您显示如下输出:

Bisecting: 5 revisions left to test after this (roughly 2 steps)

没有明确告诉你,Git 再次检查了新范围的中间提交。

您将继续这个输入 git bisect good/bad 的过程,当没有任何东西可以平分时,Git 将显示第一个错误提交:

a8h39dk32... is the first bad commit

进一步阅读:

这里是 link 到 great tutorial,涵盖了 git bisect 的完整用法。而且我发现即使是官方的 Git 文档也不完全详尽。