2

git merge master別のブランチから実行しようとすると、次の競合が発生します。

<<<<<<< HEAD
=======
    t.text     "label_en"
    t.text     "help_text_en"
    t.text     "options_en"
>>>>>>> master

私は競合を解決する方法を知っていますが、HEAD バージョンには特定の行にコンテンツがないため、そもそもなぜ git がこれを競合として認識するのか興味があります。

<<<<<<< HEAD
=======

マスターから3行を追加してマージするだけのgitの単純なケースではありませんか?


アップデート:

@Marcinは正しいです。答えに基づいて、テストを行いました。たとえば、以下のような git ツリーがあるとします。

 A ---- B  (master)
      \
        C  (another branch)

temp.txtの内容commit A:

    t.text    "LALALA"

temp.txtの内容commit B:

    t.text    "label_en"
    t.text    "help_text_en"
    t.text    "options_en"

temp.txtinの内容commit Cは空です。


この時点で、次のようにします。

git checkout another_branch
git merge master

次に、次のものを取得します。

<<<<<<< HEAD
=======
    t.text     "label_en"
    t.text     "help_text_en"
    t.text     "options_en"
>>>>>>> master
4

1 に答える 1

6

その行masterと別のブランチで変更を行い、後者のその行から何かが削除され、git はその競合を自動的に解決できません。

于 2013-04-04T08:11:18.380 に答える