git bisect は設計上ブランチ対応であることを認識しているため、適切なコミット (G) と不適切なコミット (B) の間でブランチにマージした場合、バグが発生する可能性があるため、それらの変更も考慮する必要があります。ブランチに含まれます。
私の場合、サイド ブランチとして依存関係があり、時々メイン プロジェクトに変更をマージします。依存関係は、メイン プロジェクトとは異なる実行方法、異なるビルド システムなどを持つライブラリと見なすことができますが、メイン ブランチへのマージを介して最近の変更が必要です。
問題は、このシナリオで二分している間に、依存関係からのコミットでコンパイル不能なコミットになってしまうことです。
二分法を実行している間、各ブランチのマージを単一のコミットと見なしたいだけです。
私がこれまでに見つけた回避策は、有効なコミット G..B のリストを git log --first-parent で作成し、バイセクト中に、現在のコミットがそのリストにない場合は git bisect skip を実行することです。ただし、これには多くの時間がかかります(スキップするたびにチェックアウト/変更するファイルがたくさんあります)。
質問は次のとおりです。 --first-parent を git bisect で実行する方法や、既にコンパイル可能ではないことがわかっているブランチのチェックアウトを回避できる有効なコミットのリストを提供する方法はありますか? 図でoとマークされているコミットのみを確認するにはどうすればよいですか?
G---o---o---o---o---o---o---B メインプロジェクトブランチ / / / x---x---x---x---x 依存関係 \ / x' 依存プロジェクトのタスクブランチ
編集:明確にするために図を追加