具有多个外部库的项目结构

时间:2016-08-20 00:22:00

标签: git project-management git-submodules git-subtree

我有一个项目A需要使用库B和库C.它们都是git。我想获取B和C的本地副本并进行一些自定义更改,但同时能够从其git存储库更新B和C.

例如,我需要B提交B1和C提交C1并将它们更改为在A中使用。后来我想拉B和C但是进行我的更改(合并?)。我想将A,B,C保留在同一个git repo中。

我考虑使用git子树,但似乎不可能同时获得B1和C1。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

使用子模块仍然是更精确的选项,您可以:

  • 叉B和C(为了获得回购,你可以推回)
  • 将它们作为子模块添加到项目A(为每个子目录引用精确的SHA1)

这意味着B和C是A中的子位置,并且表现得像任何其他git仓库一样:

  • 你可以修改它们,提交和推送(只要你添加,提交和推送A,以便记录新的gitlink)
  • 您还可以 添加“上游”远程网址,引用原始的B repo和C repo。这允许您在考虑原始回购演变的情况下,将您自己的修改与上游/主控进行变基或合并。
相关问题