将多个外部git repos合并到一个git repo中,并且仍能跟踪起源

时间:2016-03-26 02:18:09

标签: git

我正在移植/园艺/维护一个非常快速移动的第三方项目,该项目由许多git repos组成。他们使用回购作为经理,他们的系统运作良好。然而,我的并非如此。在移植期间,我最终一次修改多个repos,并尝试通过命名约定将这些更改集合在一起。但这太费时间了。现在我的组织也有了新的要求。人们对拉动gazillion git repos不满意,这需要很长时间。因此,他们希望我将所有内容组合成一个git repo并删除repos的未使用部分(有相当多的测试代码及其黄金输出)。

现在的问题是:这在git中是可行的吗?可以吗

  A-B-C
       \
        L1

  D-E-F
       \
        L1'-L2

变成:

   A-D-E-B-C-F-L1-L2

虽然仍有可能从外部回购拉动和退出?

我知道这是积极的,可能不是最好的主意;但我试图避免维护另一个git repo,这几乎是所有修补源的浅层副本,并且没有历史记录。

1 个答案:

答案 0 :(得分:0)

我可能会提到git subtree解决方案。在我的发行版中,它可以在其他git子命令中使用,您可能需要从contrib中获取它。它与git subtree merge不同,可能提供更多"无缝"最终用户和存储库管理员的经验。