2017-06-27 12 views
1

私はGithub PR(git merge --no-ff)でマージしている機能ブランチを持っています。git mergeが早送り可能かどうかを確認する方法

私が好きなのは、マージがマージされたときにマージが早送り可能かどうかを確認する機能です。基本的に、すべてのテストはフィーチャーブランチ上で実行されます。基本的に同じコードに対して実行している場合は、私のテストをメインブランチ上で走らせないようにしたいと思います。

フィーチャーブランチの作成中にメインブランチにコミットが追加されても、マージするとテストが実行されるはずです。 gitで可能ですか?

答えて

0

git mergeの出力は、早送りマージを使用するタイミングを示します。両方のブランチのローカルバージョンを保持し、ローカルフィーチャーブランチをローカルマスターにマージし、出力を見ることができます。

1

特定のポイントからリビジョンが早送り可能かどうかを確認するには、git branch --containsを試してみてください。ブランチAがポイントBから早送り可能な場合、ブランチAはgit branch --contains point-Bにリストされます(ブランチAがリモートの場合は-rを使用します)。

0

あなたは文字通りいくつかは、既存のM(MはハッシュIDです)M^1M^2の祖先であるかどうかをテストすることによって、早送り操作されている可能性がをコミットマージするかどうかをテストすることができます。

...--o--o--M^1---M--... 
     \  /
     o--o--M^2 

(このマージが早送り可能なMM^1の最初の親のようではなかった、M *の第二の親の祖先ではない) VS:

(このマージは早送りが可能でしたが、強制的にマージされました)。

テスト・スキップの目的のために、しかし、M^1Mに関連付けられている木を比較する方が簡単かもしれません。つまり、実際のマージがあったとしても、それは「効果のないマージ」であった可能性があります。ツリーの比較はこれを見つけますが、祖先のテストは不要です(不必要なテストを実行します)。

関連する問題