2014-11-08 93 views
0

我试图从一个大型项目中的一个git repo(“FOO”)的rootdir中使用15个目录。在较大的项目中将对这些文件进行更改并回到“FOO”回购。我逻辑上希望git subtree split --rejoin这些目录到“FOO”的分支中,然后将该分支添加/拉出到较大的项目。换句话说,我想在“FOO”回购中保留1-2个目录私有,而不是将它们添加/同步到更大的项目。覆盖多个目录的git子树

不过,翻翻git的文档和SO线程时,看来这不是git subtree split支持(见链接线程),除非我做每一个目录子树我用git filter-branch改写历史。 Git subtree and multiple directories

通常建议使用git filter-branch作为解决方案,但似乎将任何同步重新打开回原始的“FOO”回购。来自git filter-branch --help重写后的历史记录对于所有对象将具有不同的对象名称,并且不会与原始分支收敛。对于“FOO”回购结构的任何更改(例如通过filter-branch将15个目录置于新目录下)目前是不可能的。

我坚持把每个目录当作一个子树吗?在较大的repo中做15个子树分割(要同步回“FOO”将需要大量的时间。是否有任何技巧来优化这个(例如,1次通过大回购的提交,但为每个文件夹的提交创建一个分支)? 。

+0

一个分裂需要4分钟时间做所有15个子树拆分只需要不到一个小时 – 2014-11-10 17:46:23

回答