Git:我能把所有内容放在一个子文件夹中,同时还能保留历史记录吗?

4

可能是重复的问题:
是否可以移动/重命名git中的文件并保留其历史记录?

我以前使用subversion,不确定git如何帮助我解决以下情况。

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

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

例如,在我的存储库中,我当前拥有以下结构

src
res
xml
file.txt
.gitignore

我希望将它们全部移动到名为common的文件夹中,这样我就可以在仓库根目录下拥有以下结构。
common
.gitignore

是否可能,如果是,如何实现?

谢谢


不要认为它与你提供的参考重复了,那里的问答者似乎已经知道我想知道什么。因此,那里的答案都是基于这个假设的。 - Ahmed
2个回答

4
mkdir common
git mv src res xml file.txt common
git commit

这样做不会保留这些文件的历史记录。您需要使用 git log --follow 命令来查看历史记录。 - Ryan Bigg
4
是的,它会。或者更确切地说,它不能因为Git不跟踪每个文件的历史记录。它总是跟踪整个仓库的历史记录。 - melpomene

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接