В результате вы должны выполнить перемещение в одном коммите, а затем исправить все изменения в последующем коммите. Это позволит 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, поэтому кто-то может сказать мне, что мне нужно выполнить, чтобы сделать вышеупомянутое.

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

Ваш ответ на вопрос