マージ警告 は競合の回避に役立ちますが、それでも発生してしまった場合、このガイドが Unreal Engine プラグインを使用した解決を支援します。
ステップ 1: マージ競合を作る
マージ競合を発生させるには、2 つの異なるブランチで同じファイルに変更を加える必要があります。 ここでは、Unreal の Third Person Template プロジェクトのBP_ThirdPersonCharacter をプラグインで Diversion リポジトリとして初期化した状態のものを使用します。

notify-jump-apex と名付けます。


BP_ThirdPersonCharacter ブループリントに、次のように設定します:
(ここではガイドの目的のために簡略化した例です。)

notify-jump-apex ブランチにコミットしましょう。

main ブランチに戻り、前と同じように attack という新しいブランチを作成し、ブループリントの正しいバージョンを取得するためにエディターを再起動します。
攻撃ロジックを実装し、attack ブランチにコミットしましょう。

main ブランチに戻り、notify-jump-apex ブランチをマージします。


attack ブランチを main ブランチにマージする際はそうはいきません:

.uasset)なので、人間が読める形式ではなく、特別なツールなしに手動で解決することはできません。幸いにも Unreal には専用のツールがあります!それを使ってみましょう。
ステップ 2: マージ競合を解決する
Unreal エディターを開き、BP_ThirdPersonCharacter ブループリントを開きます。アイコンに気付きましたか?これは、そのファイルに競合があることを示しています。

Revision Control -> Merge に移動します。これでマージ解決ツールが開きます。


attack ブランチからの変更です。上のスクリーンショットで、左の列が Revision 12 と表示されているのに気付きましたか?
あなたの左の列は違う番号かもしれません。私はこのガイドのスクリーンショットを撮る際にやり直したためです。あなたのは 4 になるはずです。Discord でぜひ教えてください!
真ん中の列はローカル版で、現在のブランチにあるものです。この例では、main ブランチの現在の状態で、notify-jump-apex ブランチからの変更を含んでいるはずです。
マージ競合をより適切に管理するには、真ん中の列にローカルの変更が表示されていることが重要です。これは Unreal のマージツールの問題のようです。
右の列はベース版で、2 つのブランチの共通の祖先であり、任意です。この場合、テンプレートの元のブループリントを含む main ブランチからの 2 番目のコミットです。
ベース版を表示するには、ドロップダウンを開き、その列に表示したい正しいコミットを選択します。コミットにマウスを合わせるとコミットメッセージが表示され、正しいものを特定できます。そのままにしておいても、残りの手順は同じように見えます。

Start Merge をクリックし、次に Event Graph をクリックします。通常のグラフ操作と同様、または Next と Previous ボタンを使って、変更を移動できます。
ブループリントがバックグラウンドで開いており、変更を加えると真ん中の列にも反映されることに注意してください。
上部には、重要な 3 つのボタンがあります: Accept Source、Accept Target、Finish Merge。Accept Source は左の列の変更を採用し、Accept Target は真ん中の列の変更を採用し、Finish Merge は変更を保存してウィンドウを閉じます。
今回のケースでは、どれも私たちが望むものではありません!両方のブランチの変更を組み合わせたいのです。そのためには、左の列の変更を、バックグラウンドで開いているブループリントに手動でコピーする必要があります。
通常通りにコピー & ペーストし、完了したら Finish Merge をクリックします。
Before:



