0

ブランチをマスターブランチとマージしようとしています。驚いたことに、git は異なるファイル間で競合を特定しました! 同じファイル内での競合には慣れていますが、異なるファイル間の競合の背後にある概念を理解できません。

これがケースです:

  • 2 つのブランチがありますmasterbranch1
  • file1.ini:
    • in master: 削除されました
    • in branch1: 変更されました (共通の祖先 with と比較してmaster)
  • master新しいファイルがあります:folderA/file2.ini
  • file1に移動されませんでしたfolderA/file2.ini

マージ コマンドの後:

  • file1.ini削除されました
  • 新しい「folderA/file2.ini」には、次のような競合マーカーが含まれています。

    <<<<<<< HEAD:file1.ini

    ...

    =======

    ...

    >>>>>>> master:folderA/file2.ini

ファイルの混在について困惑しています。

4

1 に答える 1

1

Git は、ファイルの類似性に基づいて動的な名前変更検出を行います。削除は削除よりもfile1.ini保持に似ていたfolderA/file2.iniため、git はこれを名前変更と編集として処理しようとしました。

(要するに、この特定のケースでは、これは単なるアルゴリズムの失火です。)

于 2013-10-18T19:24:53.203 に答える