Как переместить все 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 на самом деле не обрабатывает перемещение или переименование. Я знаю, что даже несмотря на то, что он отображается как новый файл в журналах, все же можно просмотреть историю фиксации для файла, используя некоторые параметры в git log .

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

56
задан Stevoisiak supports Monica 28 August 2017 в 23:11
поделиться