253

ブランチを作成し、dialogそれをブランチにマージしようとするとmaster。2 つの競合があります。解決方法がわかりませんCONFLICT (delete/modify)。どうすればよいか教えてください。

$ git checkout master
$ git merge dialog
CONFLICT (delete/modify): res/layout/dialog_item.xml deleted in dialog and modified in HEAD. Version HEAD of res/layout/dialog_item.xml left in tree.
Auto-merging src/com/DialogAdapter.java
CONFLICT (content): Merge conflict in src/DialogAdapter.java
Automatic merge failed; fix conflicts and then commit the result.

を開きsrc/DialogAdapter.java、競合を修正して、git add src/DialogAdapter.java. 他に何をする必要がありますか?

4

3 に答える 3

320

競合メッセージ:

CONFLICT (削除/変更): res/layout/dialog_item.xml がダイアログで削除され、HEAD で変更されました

res/layout/dialog_item.xmlマージしている「ダイアログ」ブランチで削除されたが、HEAD (マージ先のブランチ) で変更された ことを意味します。

だからあなたはかどうかを決める必要があります

  • git rm res/layout/dialog_item.xml" "を使用してファイルを削除

また

  • git add res/layout/dialog_item.xml" "を使用して HEAD から (おそらく編集後に) バージョンを受け入れる

次に、" " でマージを終了しますgit commit

git は、マージ コミットを作成していることを警告することに注意してください。これは、(まれな) 望ましくないものである場合に発生します。おそらく、そのケースがそれほど珍しくない時代から残っています。

于 2009-09-04T18:23:59.827 に答える
95

通常は実行するだけでgit mergetool、変更したファイルを保持するか、削除したままにするかを尋ねるメッセージが表示されます。ファイルごとに複数のコマンドではなく1つのコマンドであるため、これが最も速い方法です。

特定のサブディレクトリに多数の削除済みファイルがあり、ファイルを削除することでそれらすべてを解決したい場合は、次のようにします。

yes d | git mergetool -- the/subdirectory

dファイルの削除を選択するために提供されます。変更したファイルを保持するために使用することもできmます。実行時に表示されるプロンプトから取得mergetool

Use (m)odified or (d)eleted file, or (a)bort?
于 2016-12-28T15:11:39.773 に答える