将 git 存储库移动到同一路径中的子目录,同时保留其所有历史记录
Move git repository to a subdirectory in the same path while preserving all of its history
我有一个 git 存储库,其中有超过 100 个提交,我在下面的路径中初始化了一段时间:
/Users/myusername/
但是,我所有的提交实际上都是针对路径中的文件:
/Users/myusername/excess/folders/not/requiring/version/control/project_root/
我应该在 project_root/
中初始化存储库,因为我不需要对上层目录中的任何内容进行版本控制。
有没有什么简单的方法可以更改我的存储库路径,使存储库的顶层为 project_root/
,同时还能保留我的版本历史记录?是否还有任何额外的步骤可以将其反映在我的远程存储库中,或者我只是在进行更改后提交并推送?
如果出现问题,您可以删除复制的.git*
文件并重新开始。您可以执行以下操作:
$ cp -r .git* path/to/project_root/
$ cd path/to/project_root/
$ git add -A .
当您调用 git status
时,您现在应该看到的只是重命名和删除。如果一切正常,你可以删除之前根目录中的.git*
。
另请注意,历史记录中存在的任何文件都将保留在那里,如果您有凭据文件等,则需要进行另一次清理操作