Я создал 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
. Что еще мне нужно сделать?
git
git-merge
merge-conflict-resolution
Базз-DEE
источник
источник
Ответы:
Сообщение о конфликте:
означает, что
res/layout/dialog_item.xml
был удален в ветке 'dialog', которую вы объединяете, но был изменен в HEAD (в ветке, в которую вы сливаетесь).Таким образом, вы должны решить,
git rm res/layout/dialog_item.xml
"или
git add res/layout/dialog_item.xml
"Затем вы завершаете слияние с "
git commit
".Обратите внимание, что git предупредит вас, что вы создаете коммит слияния, в (редком) случае, когда это то, что вам не нужно. Вероятно, остается со времен, когда указанный случай был менее редким.
источник
git rm …
), но я получаю…: needs merge
иrm '…'
который мне трудно интерпретировать. И затем, если я пытаюсь зафиксировать, снова появляется stackoverflow.com/questions/19985906/…git ls-files --stage
и / илиgit status --porcelain
и / илиgit diff-files <something>
получить список измененных файлов, и запустить сценарий, чтобы удалить их или принять вашу или их версию.git status
илиgit diff --cc
. Есть и то,git log --merge
что может помочь ...Обычно я просто запускаю,
git mergetool
и мне будет предложено сохранить измененный файл или удалить его. ИМХО, это самый быстрый способ, так как это одна команда вместо нескольких на файл.Если у вас есть несколько удаленных файлов в определенном подкаталоге, и вы хотите, чтобы все они были решены путем удаления файлов, вы можете сделать это:
Предусмотрено
d
удаление каждого файла. Вы также можете использовать,m
чтобы сохранить измененный файл. Взято из приглашения, которое вы видите при запускеmergetool
:источник
Если вы используете Git Gui на Windows,
источник