【问题标题】:project structure with multiple external libs具有多个外部库的项目结构
【发布时间】:2016-08-20 00:21:59
【问题描述】:

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

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

我正在考虑使用git subtree,但似乎不可能同时得到B1和C1。

有什么建议吗?

【问题讨论】:

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


    【解决方案1】:

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

    • 分叉 B 和 C(为了获得回购,您可以推回)
    • 将它们作为子模块添加到您的项目 A(它为每个子存储库引用一个准确的 SHA1)

    这意味着 B 和 C 是 A 中的子存储库,其行为与任何其他 git 存储库一样:

    • 你可以修改它们,提交和推送(只要你在A中添加,提交和推送,以便记录新的gitlink)
    • 您可以也添加一个“上游”远程 URL,引用原始 B 存储库和 C 存储库。考虑到原始 repo 的演变,这允许您将自己的修改与上游/master 进行变基或合并。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-09
      相关资源
      最近更新 更多