2017-11-14 6 views
0

私は人間のエラーのために、歴史の中でいくつかの悪いマージをしています。私はこれらのようなものがあるかどうかを知るための素早い方法が必要です。それを自動化するために、すべてのマージコミットについて、マージが自動的に(特定の競合解決戦略で)実行され、マージで実際に起こったものとの違いを確認したい。マージコミットと同じ親の自動マージとの違いをどのように確認できますか?

私はそれをどのように行うことができますか?

答えて

1

この自動マージを行う必要があります。

これを実行するには、疑わしいマージの2つの親のうちの1人をチェックして、プロセスで「分離されたHEAD」を与えます。その後

git checkout $suspect_merge^1 

、両親の他にgit merge実行します:$suspect_mergeが疑わしいマージのために適切な名前(例えば、ハッシュID)が含まれている場合

git merge [options] $suspect_merge^2 

マージするか仕上げとあなたの分離したHEADに対して新しいコミットを作成するか、競合によって失敗する。失敗した場合は、手動で正しく終了してからコミットできます。

今、あなたはあなたが容疑者のマージに比較することができます良いマージがあります。

git diff $suspect_merge HEAD 

あなたgit checkout任意の名前の枝を、切り離さ頭の上にあなただけの作っマージが放棄されています。最終的に(通常、30日後、reflogエントリが期限切れになる)ガベージコレクションされます。それを維持するために、名前を付けてください:ブランチまたはタグ名がうまくいきます。

関連する問題