【问题标题】:Is git-subtree appropriate for me?git-subtree 适合我吗?
【发布时间】:2014-06-27 12:33:37
【问题描述】:

我的项目中包含一个第 3 方库。重要的是,“子项目”代码应该包含在主/父代码中,因为目标是当其他人进行 git pull 时,他们可以毫不费力地下载代码。

但我希望能够从库自己的 repo 下载更新。

以前,该库直接下载到他的目录中,更新由主项目中的提交管理。

现在我正在考虑使用 git-subtree 或 git-submodule。 git-subtree 是否对此有用。 git-submodule 更好吗?

【问题讨论】:

    标签: git git-submodules git-subtree


    【解决方案1】:

    Git 子树。

    • 其他人容易获得。
    • 如果您确实想对库进行更改,可以避免复杂化。
    • 使用 squash 选项可避免在合并库时引入大量历史记录。
    • 您可以使用 git subtree 命令合并库,其他人无需支持该命令即可访问和使用您的存储库。
    • 在您的存储库中无意中对库所做的更改没有问题,如果您想贡献它们,只需拆分出来。

    【讨论】:

    • 谢谢,但就我而言,我不会对库进行更改。只能从他自己的 repo 中获取更新。
    • 好吧,为什么要限制自己?
    【解决方案2】:

    几乎总是,最好使用您使用的任何语言的包管理器来包含第三方代码,并固定到特定版本。如果您没有包管理器,请将构建脚本中第三方 repo 的特定提交/标记中的代码拉到 git-ignored 子文件夹中。

    但要具体回答您的问题,有很多资源可以比较子树和子模块。每种方式都有优点和缺点。我可以给你链接,但我只是从我的搜索中复制和粘贴。我建议对于您不直接作为项目的一部分进行更改的代码,使用子模块就可以了,因为您可能不希望项目中的库代码历史记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-07
      • 2012-07-29
      • 2015-04-20
      • 2013-03-01
      • 1970-01-01
      • 2021-10-12
      • 2016-09-13
      • 2012-01-30
      相关资源
      最近更新 更多