我试图从一个大型项目中的一个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次通过大回购的提交,但为每个文件夹的提交创建一个分支)? 。
一个分裂需要4分钟时间做所有15个子树拆分只需要不到一个小时 – 2014-11-10 17:46:23