1

topic-branch-7 のティップにバグがあることはわかっていますが、master のティップにはバグがないことがわかっています。topic-branch-7 のどこでバグが導入されたかを調べたいと思います。だから私は以下を実行しました:

git checkout topic-branch-7
# some testing to verify the bug
git bisect start bad  # start a git bisect and mark this commit as bad
git-merge-base master topic-branch-7
9ac8c59bb10c13d86bcdeff90cb47e25d477caad
git checkout 9ac8c59bb10c13d86bcdeff90cb47e25d477caad
# some testing to verify the bug is not present
git bisect good

私を投げているのは、 git bisect good を実行しても何も起こらないということです! コミットを良いものとしてマークし、このコミットと悪いコミットの中間点を見つけて、そのコミットをチェックアウトするべきではありませんか? なぜ何も起こらないのですか?

4

2 に答える 2

2

gitbisectの構文が間違っていると思います。そのはず

git-merge-base master topic-branch-7
9ac8c59bb10c13d86bcdeff90cb47e25d477caad
git bisect start topic-branch-7 9ac8c59bb10c13d86bcdeff90cb47e25d477caad
#you are now at a commit somewhere in between topic-branch-7 and 9ac8c59bb10c13d86bcdeff90cb47e25d477caad
#do testing to find out if bug is there
git bisect good/bad
#repeat until git tells you where the bug is introduced
git bisect reset HEAD
于 2012-11-27T01:14:14.340 に答える
0

git bisect がうまく機能することは知っていますが、私がやりたいのは、ブランチを使用して手動で行うことです。良いコミットを選択してブランチを作成し、それを「良い」と呼びます。次に、途中でコミットを見つけてテストすることから始めます。良い場合は、このブランチとマスターの間のコミットにブランチを作成します。そうでない場合は、選択した中央のブランチの下にあるコミットにブランチを作成します。これは反復的に行われ、基本的にはバイナリ ソートです。つまり、チェックするコミットが少なくなり、バイセクトよりも細かく制御できるようになります。通常、各ブランチへのチェックアウトには gitk を使用します。もう 1 つの利点は、何かを見つけた場合、別のブランチで作業でき、残りに影響を与えないことです。例えば

Master Commit
.
. 
.
Test Commit  <---- This one is good, so keep selecting commits above until you fail
.
.
.
Middle Commit  <--- Create branch and checkout. This one is good, so go above
.
.
.
Good Commit
于 2012-11-26T22:12:50.257 に答える