Как я могу разрешить конфликты имен файлов между Git ветками? - PullRequest
0 голосов
/ 09 апреля 2020

1) Филиал firstBranch:

переименовать /frontends/myfrontend/utils/myfile.js в /frontends/myfrontend/utils/myfile2.js


2) Филиал secondBranch

переименовать /frontends/myfrontend в /frontends/myfrontend2


Теперь я хочу объединить firstBranch в secondBranch, сохраняя при этом оба переименования (поскольку одно находится в родительском каталоге, а другое - в дочернем файле).

Стратегии переименования (find-renames и rename-threshold) имеют дело только с выявлением измененного контента, который переименовывается, но я думаю, что это другой случай. Содержание одинаковое, просто git не позволяет мне решить слияние, применяя оба переименования.

Как мне с этим бороться? Я знаю, git не разбирается в каталогах, тем не менее, я думаю, что это реальный вариант использования.

1 Ответ

0 голосов
/ 10 апреля 2020

Когда вы go комбинируете их, если Git обнаруживает все переименования из фиксации базы слияния в коммит чаевых secondBranch и (единственное) переименование из базы слияния до firstBranch, вы получите конфликт переименования / переименования .

Слияние прекратится, выполнив все rest переименований и комбинаций как подходящее. Ваша работа состоит в fini sh вещах. Есть только одна вещь, которая должна быть завершена sh, по крайней мере, из этого конкретного конфликта: вы должны выбрать желаемое имя для этого файла.

Запишите желаемое содержимое файла под желаемым именем - для этого может потребоваться использование mv переименовать файл в рабочем дереве и / или отредактировать файл, если его содержимое не соответствует вашим требованиям, а затем использовать git add и git rm, если необходимо / уместно, чтобы обновить индекс Git для хранения возможно обновленный файл под желаемым именем. Теперь вы разрешили конфликт переименования / переименования.

Разрешите также любые другие конфликты, чтобы все конфликты были разрешены, а индекс Git содержит снимок, который вы хотели бы использовать в качестве результата слияния. Затем выполните:

git merge --continue

до конца sh слияния.

...