我有一个 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,所以有人能告诉我需要执行哪些操作来完成上述操作吗。