1

私は git bisect を使用して、Linux の起動エラーの悪いコミットを見つけています。

そして、現在知られている悪いコミットは次のとおりです。

commit 0f3f4fef3520fe888303886b62224bac7a837cac
Author: Darren Hart <dvhart@linux.intel.com>
Date:   Mon Mar 2 09:06:39 2015 -0800

Add manifest for 2015-03-02

既知の適切なコミットは次のとおりです。

commit 857a433072364883be5e4a7e30b895360999c8ab
Merge: d6182fe 0e28b83
Author: Darren Hart <dvhart@linux.intel.com>
Date:   Mon Feb 23 17:11:35 2015 -0800

Merge commit '0e28b83bcbf60b2485f55ec71ce540f9153725d4'

したがって、次のように入力します。

[root@localhost linux]# git bisect start
[root@localhost linux]#

[root@localhost linux]# git bisect good 857a433072364883be5e4a7e30b895360999c8ab

[root@localhost linux]# git bisect bad 0f3f4fef3520fe888303886b62224bac7a837cac
Bisecting: a merge base must be tested
[c517d838eb7d07bbe9507871fab3931deccff539] 
Linux 4.0-rc1

テストコミットIDは次のとおりです。

[root@localhost linux]# git log
commit c517d838eb7d07bbe9507871fab3931deccff539
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sun Feb 22 18:21:14 2015 -0800

Linux 4.0-rc1

これは良いコミットよりも先です:

commit 857a433072364883be5e4a7e30b895360999c8ab
Date:   Mon Feb 23 17:11:35 2015 -0800

bisect が悪いコミットを見つけることは決してないと思います。

私は何か見落としてますか?

4

1 に答える 1

1

私は答えを得たと思います、それは git rebase が原因です:

次の履歴が存在し、現在のブランチが「トピック」であると仮定します。

      A---B---C topic
     /
D---E---F---G master

この時点から、次のコマンドの結果:

git rebase master

だろう:

              A'--B'--C' topic
             /
D---E---F---G master

それで、Bは消えました。B が適切なコミットであり、リベース後に C' が不適切なコミットであることが判明した場合、次のコマンドを実行します。

git bisect start
git bisect good B
git bisect bad C'

B の前にテスト コミットを生成します (例: E)。

于 2015-03-13T08:19:53.650 に答える