Предположим, у меня следующая структура папок:
My_Repository
Library
Bananas
my_script.ook
my_output.dat
(не версия)
… и я хочу изменить его на:
My_Repository
Library
Bananas
my_script.ook
my_output.dat
Другими словами, я хочу переместить подпапку (Bananas
) на один уровень вверх, перенеся с собой все ее содержимое, включая неверсионную my_output.dat
.
Последний файл не версионный и никогда не должен быть (представьте, что он огромный), однако он присутствует в некоторых клонах хранилища.
Теперь в моем локальном клоне все работает нормально:
git mv My_Repository/Library/Bananas My_Repository
Однако, если другие клоны извлекают это изменение, результат будет следующим:
Есть ли способ получить желаемый результат и здесь? Я ищу решение, которое хорошо масштабируется в зависимости от количества перемещенных папок и файлов, но я бы также принял сложный нет в качестве ответа.
То, что я до сих пор считал
Я мог бы просто переместить файл my_output.dat
вручную в другой клон, но этот подход не слишком хорошо подходит для большего количества файлов.
Насколько я понимаю, Git на самом деле не заботится о структуре папок и отслеживает изменения файла по сходству. Поэтому мои надежды сделать это с использованием нативных структур Git довольно низки, и я ожидаю, что мне придется применить какой-то прием (например, с помощью другого инструмента).
Я мог бы записать все свои движения в сценарии, который просто должен быть выполнен на другом клоне, но это все еще кажется мне очень не элегантным и подверженным ошибкам.