を使用する場合git bisect
、実行git bisect skip
して現在のコミットをビルド不可/テスト不可としてマークし、代わりにテストする別のコミットを Git に選択させることができます。
Git は の後にどのコミットを試みるかをどのように決定しgit bisect skip
ますか? 実験は、それが隣接するコミットではないことを示していますが、パターンを理解することはできません.
編集:基本は二分探索であることは承知していますが、明らかにもっと複雑なことをしていることにgit bisect
興味があります。git bisect skip
実験は、隣接するコミットを選択するだけではないことを示しています。以下は、0 ~ 99 の番号が付けられた 100 個のコミットを作成し、それらの分割を開始します。最初のコミットのgit bisect
選択は途中ですが、git bisect skip
その後は多かれ少なかれランダムに選択されているようです。
$ git init
Initialized empty Git repository in .git/
$ for (( i=0; i<100; i++ )); do echo $i > file; git add file; git commit -m $i >/dev/null; done # Create some dummy commits
$ git bisect start HEAD $(git rev-list --max-parents=0 HEAD) # HEAD is bad, root commit is good.
Bisecting: 49 revisions left to test after this (roughly 6 steps)
[099e5cf2ccde625f92dc369da6cad0bdf2852ce4] 49
$ git bisect skip
Bisecting: 49 revisions left to test after this (roughly 6 steps)
[88c8208a7c4322222124167e49f07c741af7d3d8] 60
$ git bisect skip
Bisecting: 49 revisions left to test after this (roughly 6 steps)
[04695f2e5b2473c3ac72435c0dbfc3ba1375abda] 88
$ git bisect skip
Bisecting: 49 revisions left to test after this (roughly 6 steps)
[1e9bf3d29589bcac2d8c467245ae8d446c195252] 40
$ git bisect skip
Bisecting: 49 revisions left to test after this (roughly 6 steps)
[9459ed79e4112d674681c8f0f921127217c7ebc6] 13