4

可能重复:
是否可以在 git 中移动/重命名文件并维护它们的历史记录?

我是以前的颠覆用户,不确定 git 在以下情况下如何帮助我。

我有一个 git 存储库,我的项目包含多个目录,我一直在这个结构上进行多次提交

现在我需要进行结构更改,以便将根目录下的所有文件夹/文件移动到一个新文件夹,并且我仍然想保留文件的提交历史记录。

所以例如在我的回购中,我目前有这样的结构

src
res
xml
file.txt
.gitignore

我希望将它们全部移动到一个名为 common 的文件夹中,以便我在 repo 的根目录中具有以下结构

common
.gitignore

有可能吗,如果可以怎么办?

谢谢

4

2 回答 2

4

你可以使用这样的命令

mkdir common
git mv src res xml file.txt common

这会移动文件,您仍然可以使用git log --follow common/file.txt. 如果您想重写历史记录,请查看如何重写历史记录,以便所有文件(除了我已经移动的文件)都位于子目录中?

于 2012-11-24T23:36:11.713 回答
4
mkdir common
git mv src res xml file.txt common
git commit
于 2012-11-24T23:32:07.663 回答