git子树覆盖多个目录

时间:2014-11-08 18:19:42

标签: git

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

但是,在查看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个目的地放在新目录下)是不可能的。

我是否坚持将每个目录视为子树?在较大的仓库中进行15次子树拆分(同步回" FOO"将花费大量时间。是否有任何技巧来优化这一点(例如,1通过大型回购提交但是为每个文件夹的提交创建一个分支?

1 个答案:

答案 0 :(得分:0)

您可能想要使用子模块。请阅读: http://git-scm.com/book/en/v2/Git-Tools-Submodules