GIT でのマージ競合の解決に矢印/マーカーが表示されない

GIT でのマージ競合の解決に矢印/マーカーが表示されない

現在、マージ競合が発生しています。通常は手動で編集できます。しかし、現在の問題は、編集できるはずの矢印/マーカー (>>>>、<<<<<、====) がファイルに表示されないことです。

問題は、コミットされていない変更が多数あり、新しく追加されたファイルが 1 つと新しく作成されたバイナリ ファイルが 1 つあることです。

これを解決するにはどうすればよいですか?

答え1

merge=unionテキスト ファイルのユニオン マージ ドライバーを誤って有効にしてしまった可能性があります。次の属性のいずれかのファイルの場所にあるファイル タイプを確認してください。

  • .git/info/attributesリポジトリ内の「 」
  • .gitattributesリポジトリ内の「 」
  • core.attributesfileオプション(run git config --list)で参照されるファイル

からgitattributes マニュアルページ:

この属性は、mergegit merge や git revert、git cherry-pick などの他のコマンドの実行中にファイルレベルのマージが必要な場合に、ファイルの 3 つのバージョンをマージする方法に影響します。

...

組み込みのマージドライバー

マージ属性を介して要求できる、組み込みの低レベル マージ ドライバーがいくつか定義されています。

文章

テキスト ファイルの通常の 3 方向ファイル レベル マージ。競合領域は競合マーカー <<<<<<<、=======、>>>>>>> でマークされます。ブランチのバージョンは ======= マーカーの前に表示され、マージされたブランチのバージョンは ======= マーカーの後に表示されます。

...

連合

テキストファイルに対して3方向のファイルレベルのマージを実行しますが、両方のバージョンから行を取得します。紛争の痕跡を残す代わりに. これにより、結果のファイルに追加された行がランダムな順序になる傾向があるため、ユーザーは結果を確認する必要があります。意味を理解していない場合は、これを使用しないでください。

関連情報