git bisect 不响应命令

标签 git git-bisect

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

git 状态响应:

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

但是,如果我运行 git bisect start,git status 会响应:

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 使用。此范围由“良好”提交定义,您确定错误不会出现,然后是“错误”提交,您认为错误肯定存在。因此,您的使用应该像这样开始:

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

进一步阅读:

这里是一个链接 great tutorial其中涵盖了 git bisect 的完整用法。而且我发现即使是官方的 Git 文档也不完全详尽。

关于git bisect 不响应命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39022257/

相关文章:

git - $ git add --all 与 $ git add * 之间的区别?

git - 如何将所有内容回滚到之前的提交

git - 将 git 平分在祖先路径上

python - git-bisect,但对于 N 个 repo

git - 如何恢复 git bisect

git - 如何使用带有 "git commit"的编辑器?

git - git 比 git-svn 有什么优势?

mysql - 有没有一种方便的方法可以在我的 git 提交中包含一个 mysqldump?

git - 我可以在 git 中合成一个跳过单个更改集的分支吗

git - 一分为二,从最初的提交