В результате вы должны выполнить перемещение в одном коммите, а затем исправить все изменения в последующем коммите. Это позволит Git определять перенаправление с максимальной эффективностью и не будет иметь никакого значения для объема данных, хранящихся в хранилище (так как вы все равно внесете эти изменения).
я есть git-репозиторий, структура которого выглядит следующим образом:
+--repo.git
|
+----+bootstrap.py
+----+buildout.cfg
+----+.gitignore
+----+webapp
|
+---------+manage.py
+---------+modules
+---------+templates
+---------+static
+---------+...
+---------+...
Я хотел бы переместить содержимоеwebapp
папка на один уровень вверх. Мой итоговый репо должен выглядеть так:
+--repo.git
|
+----+bootstrap.py
+----+buildout.cfg
+----+.gitignore
+----+manage.py
+----+modules
+----+templates
+----+static
+----+...
+----+...
Могу ли я сделать это, просто переместив все файлыwebapp
каталог на один уровень выше, удаляя пустойwebapp
каталог, а затем фиксируя изменения? Сохранит ли это историю фиксации файлов подwebapp
каталог?
Хотя это очень простой вопрос для многих из вас, я бы хотел быть уверенным. Последнее, что я хотел бы, это гадкий суп.
Я попытался переместить файлы, но я потерял историю коммитов, так как git на самом деле не обрабатывает перемещение или переименование. Я знаю, что хотя он отображается в журналах как новый файл, все еще можно просматривать историю коммитов для файла, используя некоторые параметры вgit log
.
Из того, что я прочитал, лучший способ сделать это - использоватьgit-filter
, Я не очень хорошо разбираюсь в shell или git, поэтому кто-то может сказать мне, что мне нужно выполнить, чтобы сделать вышеупомянутое.