Кажется, вы думаете, что движение файла - это «вещь» в git, и что ветви, с которыми вы сливаетесь, каким-то волшебным образом «приобретут» это движение как функцию, без что-нибудь еще происходящее, или «сворачивание» этого во что бы то ни было еще произошло. Это неправда; это не то, что git. Git мыслит в терминах отдельных файлов, а отдельный файл - это единый путь .
Итак, file.txt - это файл. Если вы переместите его в папку / file.txt , это будет другой файл. Git видит, что один файл исчезает и появляется новый файл. Git будет попытаться соединить эти два файла друг с другом, если ситуация достаточно проста, но нет никаких гарантий. И даже если это так, он не рассматривает это как «ход»; он видит это как переименовать .
Итак, я представляю себе, что произошло что-то вроде этого:
on master:
file file.txt moved to [was renamed as] myfolder/file.txt
on branch:
file file.txt modified in place
Итак, это конфликт. Одна ветка переименовала файл, другая изменила файл. Git не знает, что вы хотите сделать, поэтому оставляет это на ваше усмотрение.
Но у вас также нет простого жизнеспособного пути вперед. Вы сделали плохую вещь. Что из этих двух вещей вы хотите переименовать или изменить? Ни то, ни другое! Вам нужно содержимое файла по адресу file.txt в branch
, но вы хотите, чтобы они находились в месте , где «тот же» файл находится в master
, а именно myfolder / file.txt . Ура!
Как вы собираетесь исправить этот бардак? Самый простой способ - отказаться от слияния и начать все сначала. У вас есть два основных варианта:
Выполните перестановку в ветке (ах). Другими словами, позвоните всем в команде и скажите: «Привет всем, в какой бы ветке вы ни работали, сделайте фиксацию, переместите file.txt в myfolder / file.txt и сделайте еще одну фиксацию ". Если все будут делать то же самое, все они успешно сольются в мастер.
Полностью воздержитесь от перегруппировки. Позвоните всем и скажите: «Привет всем, когда вы закончите с этой веткой, остановите работу, пока все не объединятся». Подождите, пока все не объединятся, а затем выполните перестановку. Теперь каждый может тянуть мастер, и работа может начинаться снова с новыми ветками.