Ответ 1
В моем случае это был удаленный файл, отсутствующий в репозитории
CONFLICT (delete/modify): ERD.pdf deleted in HEAD and ...
Мне просто нужно сделать: git rm ERD.pdf
Надеюсь, что это поможет.
В одной ветки в одной ветки A файл изменяется, и изменение завершается. Теперь в другой ветке B тот же самый файл редактируется и переименовывается.
При объединении B в git правильно распознает конфликт (CONFLICT (удаление/изменение)), и оба файла находятся в рабочем каталоге.
Если я знаю, что хочу иметь оба изменения в одном файле, как мне сделать это лучше всего?
Существует файл git merge-file, который - если я прав - ожидаю как файлы, так и общий предок. Но как дать последний? Как я могу сказать "использовать $path из $commit" или что-то в этом роде?
Пример:
mkdir git-rename-repo
cd git-rename-repo
git init
echo "First line" > afile
git add .
git commit -m "First commit in master"
git checkout -b mybranch
echo "Second line in mybranch" >> afile
git mv afile bfile
git commit -a -m "change and rename in mybranch"
git checkout master
echo "Changed first line in master" > afile
git commit -a -m "changed afile"
git merge mybranch
Теперь мне нужен файл с именем "bfile" с двумя изменениями:
Changed first line in master
Second line in mybranch
Спасибо
В моем случае это был удаленный файл, отсутствующий в репозитории
CONFLICT (delete/modify): ERD.pdf deleted in HEAD and ...
Мне просто нужно сделать: git rm ERD.pdf
Надеюсь, что это поможет.
У меня также был сценарий
** CONFLICT (изменить/удалить): *** FileName удалено в HEAD и изменено в 6efb2a94ba0601aa1ec5050ab222a0359ee8379a. Версии 6efb2a94ba0601aa1ec5050ab222a0359ee8379a из FileName, оставленной в дереве. *
Я тоже был в замешательстве и дошел до этой должности.
Но при вводе git status
все сомнения исчезли. git status
, сообщалось следующее о конфликтующих файлах:
Неподвижные пути:
(используйте "git add/rm...", чтобы пометить разрешение)
Итак, я просто сделал git rm FileName
, и после этого CONFLICT был разрешен.
UPDATE Хорошо, git алгоритм рекурсивного слияния делает это просто отлично сам по себе. Я просто использовал слишком маленькие файлы, чтобы проверить его, чтобы относительная аналогичность была ниже триггера обнаружения переименования.
Если я изменяю одну строку файла с двумя маленькими строками, относительное изменение очень велико.
Конечно, я мог бы сделать что-то вроде
git show HEAD^:afile > afile_ancestor
kdiff3 -m afile_ancestor afile bfile
P.S.: Извините за разбитое форматирование выше. Я не включил JavaScript, поэтому я не видел предварительного просмотра.