現在、私はすぐにマスターにマージされる機能ブランチで作業しています。私は最近それを試してみましたが、いくつかのマージの競合があり、手動で修正する必要がありました.
では、事前にマージの競合を回避するために、マージされたブランチのバージョンを常に使用するように git に指示することは可能ですか? この場合、競合を手動で修正しましたが、常にマージされたブランチからバージョンを選択したため、面倒な作業を省くことができます。
現在、私はすぐにマスターにマージされる機能ブランチで作業しています。私は最近それを試してみましたが、いくつかのマージの競合があり、手動で修正する必要がありました.
では、事前にマージの競合を回避するために、マージされたブランチのバージョンを常に使用するように git に指示することは可能ですか? この場合、競合を手動で修正しましたが、常にマージされたブランチからバージョンを選択したため、面倒な作業を省くことができます。
feature
これが機能ブランチの名前であると仮定すると、次のコマンドを使用して git で正確にこれを行うことができます。
git merge -s recursive -X theirs feature
これは、「再帰的」マージ戦略を使用することを示していますが、「彼ら」オプションを使用しています。これは、競合が発生した場合、現在のブランチではなく機能ブランチからハンクのバージョンを取得することによって自動的に解決されることを意味します。(これは、git から削除された "theirs" マージ戦略とは完全に異なることに注意してください。)
この機能は git v1.7.0 で導入されました。
再帰的な「ours」戦略は使用できません。競合しなかった変更は省略されます。
競合するファイルのファイル名を取得するスクリプトを作成し、git checkout --ours -- filename の後に git add filename を実行できます。
同じ競合が何度も発生する場合は、rerere をオンにします。競合を解決する必要がないように、これで十分な場合があります。
お役に立てれば。