项目依赖于来自多个来源的其他项目

时间:2014-02-05 06:53:44

标签: git git-submodules git-subtree

所以我有一个项目A,它使用项目B.所以我继续将B标记为项目A的子树,并将B的变化合并到A中。还有一个我想要使用的项目叫C,C也是项目B的子树。但我想做的是在我的项目中独立添加C作为子树,也没有2个代码库的副本项目中的C.我怎样才能解决这个问题?任何帮助将不胜感激。 感谢。

1 个答案:

答案 0 :(得分:2)

子树的问题是C是B历史的一部分。

如果您可以引用没有C作为子树的B,那么您可以进入子模块路径:

  • 将C作为子模块添加到A
  • 将C作为子模块添加到B
  • 确保A和B引用相同的C SHA1
  • 仅更新A中的C(git子模块更新),以便只获取一个C源。

这个想法是:

  • 保留两个对C的引用(为了检测A使用的C与B使用的C之间可能存在的差异)
  • 仅更新两个C子模块中的一个。