我一直在关注this answer from "Detach subdirectory into separate Git repository"关于如何使用git subtree命令的指令,以便将子目录从git存储库中拆分出来。它在第一个子目录上工作,但我的第二个目录被拆分,缺少提交。
我的目录树如下所示:
GitBooks
|
------ SQLBasics
|
------ RubyProgramming
我想将这两者分成他们自己独立的存储库,我已经在SQL-Basics
上完成了。但是,在RubyProgramming
上,每当我按照上面答案中完全相同的指令操作时,子目录就会被拆分并丢失一堆提交。我很确定原因是因为我在一个时间点将目录名从Ruby Programming
更改为RubyProgramming
(注意其间的空格),我想它只是从{继承了提交{1}}(没有空格)。
我的问题是如何在这个子目录中继承所有提交,即使我在某个时间点更改了它的名称。有可能这样做吗?
提前谢谢你。
答案 0 :(得分:0)
你可以这样做:
git filter-branch -f --prune-empty --tree-filter '[ -d RubyProgramming ] && mv RubyProgramming Ruby\ Programming' -- --all
git filter-branch -f --prune-empty --subdirectory-filter Ruby\ Programming --all
首先撤消历史记录中的重命名,然后解压缩单个目录。