Bisect

  • 查找引入了 bug 的提交
  • 通过消除流程工作
  • 指定一个已知的好和坏的 revision 来开始

Bisect 工作流示例

  1. 开始 bisect 流程
  2. 输入错误的 revision(通常是最新的提交)
  3. 输入一个好的 revision(提交/分支)
  4. 运行代码查看 bug 是否还存在
  5. 告诉 bisect 结果
  6. 重复前两步,直到找到有问题的提交

设置

  mkdir bisect-ex
  cd bisect-ex
  touch index.html
  git add -A
  git commit -m "starting out"
  vi index.html
  # Add all good
  git add -A
  git commit -m "second commit"
  vi index.html
  # Add all good 2
  git add -A
  git commit -m "third commit"
  vi index.html
  # Add all good 3
  git add -A
  git commit -m "fourth commit"
  vi index.html
  # This looks bad
  git add -A
  git commit -m "fifth commit"
  vi index.html
  # Really bad
  git add -A
  git commit -m "sixth commit"
  vi index.html
  # again just bad
  git add -A
  git commit -m "seventh commit"

命令

  git bisect start
  # Test your code
  git bisect bad
  git bisect next
  # Say yes to the warning
  # Test
  git bisect good
  # Test
  git bisect bad
  # Test
  git bisect good
  # done
  git bisect reset