将git存储库移动到同一路径中的子目录,同时保留其所有历史记录

时间:2017-05-25 22:28:23

标签: git git-filter-branch git-mv

我有一个带有> 100次提交的git存储库,我在以下路径中初始化了一段时间:

$("#sel1").change(function () { $("#sel2").prepend('<option value=""></option>'); //trying to clear the second dropdown textonly $("#sel2 option[value='']").attr('selected', true); });

但是,我的所有提交实际上都是路径中的文件:

/Users/myusername/

我应该在/Users/myusername/excess/folders/not/requiring/version/control/project_root/中初始化存储库,因为我不需要对上层目录中的任何内容进行版本控制。

有没有简单的方法来更改我的存储库的路径,以便存储库的顶层是project_root/,同时还保留我的版本历史记录?是否有任何额外的步骤可以将这些反映在我的远程存储库中,或者我只是在进行更改后提交并推送?

1 个答案:

答案 0 :(得分:3)

如果出现问题,您可以删除复制的.git*文件并重新开始。您可以这样做:

$ cp -r .git* path/to/project_root/
$ cd path/to/project_root/
$ git add -A .

当您致电git status时,您应该看到的只是重命名并立即删除。如果一切看起来都不错,您可以删除上一个根目录中的.git*

还要注意,历史记录中存在的任何文件都将保留在那里,如果您有凭据文件等,则需要执行其他操作来清理。