23 мая 2017 г., 13:46 от CommunityAlex B

Почему git не пытается объединить изменения в переименованные файлы?

Допустим, у меня есть файл, который

Modified in master Modified in a feature branch Renamed in a feature branch

Когда я пытаюсь слиться из основного в ветвь функции, слияние завершается с

CONFLICT (modify/delete): X deleted in HEAD and modified in origin/master. Version origin/master of X left in tree.

Я понимаю, что существует конфликт, но почему он даже не пытается объединить изменения и поместить маркеры конфликта в файл?Предыдущие ответы, похоже, подразумевают, что так и должно быть. Все, что я получаю, - это две разные версии файла, где я должен выяснить разницу вручную и построчно менять порты от мастер-версии к моей версии.

Действия по воспроизведению:

git init
touch a
git add a
git commit -m 'initial import'

git checkout -b feature1
echo feature1 > a
git add a
git commit -m feature1
git mv a b
git commit -m feature1

git checkout master
echo bugfix > a
git add a
git commit -m bugfix

git checkout feature1 
git merge master 

Ответы на вопрос (0)

20 июн. 2012 г., 10:10 от akent

ования, он просто "обнаруживает" переименовывает, используя порог для различий файлов. Ваши файлы, вероятно, слишком разные.

Попробуйте объединить с: git merge master -s recursive -X rename-threshold=5%

ВАШ ОТВЕТ НА ВОПРОС