可能重复:
Is it possible to move/rename files in git and maintain their history?
我是以前的subversion用户,不确定git如何帮助我处理以下情况。
我有一个git存储库,我的项目包含多个dirs,我一直在对这个结构进行多次提交
现在我需要进行结构更改,以便将根目录下的所有文件夹/文件移动到新文件夹,我仍然希望保留文件的提交历史记录。
所以例如在我的回购中我目前有这样的结构
src
res
xml
file.txt
.gitignore
我希望所有这些都在名为common的文件夹中移动,以便我在repo的根目录下有以下结构
common
.gitignore
是否有可能,如果是这样的话?
谢谢
答案 0 :(得分:4)
mkdir common
git mv src res xml file.txt common
git commit
答案 1 :(得分:3)
你可以使用这样的命令
mkdir common
git mv src res xml file.txt common
这会移动文件,您仍然可以使用git log --follow common/file.txt
查看历史记录。如果您想改写历史记录,请查看How can I rewrite history so that all files, except the ones I already moved, are in a subdirectory?