【问题标题】:github linking with other reposgithub 与其他 repos 链接
【发布时间】:2012-02-20 07:13:55
【问题描述】:

我有一个项目,它依赖于 github 中的两个 repos 来运行。 当我将我的项目提交到 github 时,我如何链接到这两个 repos? 我应该在我自己的存储库中复制文件还是在特定修订版中链接到其他存储库,因为我不希望它更新并导致不兼容。 我已经创建了我的 github 仓库,我该怎么办?

【问题讨论】:

    标签: git github gitorious


    【解决方案1】:

    您可以使用 git 子模块“链接”到其他项目。看这里 - http://help.github.com/submodules/

    【讨论】:

    • 如果我的项目与我所依赖的原始存储库无关怎么办?例如,我正在为我的脚本使用 XML 解析器,但为该项目做出贡献并非没有意义,我还应该使用子模块吗?
    • @user391986 是的,这不仅仅是为其他项目做贡献。
    • 最后一个问题,当您更新该子模块内的文件时,如果您推送更改,它会更新我的或链接的 repo 吗?
    • @user391986 - 你说你没有为它做贡献。如果您推送,它将(尝试)更新链接的仓库。
    【解决方案2】:

    GitHub 还允许您在 GitHub 上的评论或提交中引用另一个存储库。例如:

    We should probably handle this with github/enterprise#59
    

    这将添加对问题github/enterprise#59 的更新,其中包含指向您的评论/提交的链接。

    跨存储库问题参考

    当然,GitHub 都是关于社交编码的,但您也可以拥有社交存储库。您可以通过在问题中提及 user/repository#number 来引用存储库之间的问题。一旦我们看到类似的东西——比如 github/enterprise#59——我们将确保在 github 的企业存储库中更新 issue #59,并让你知道它是从哪里引用的。这是GitHub Flavored Markdown 的一部分,它也有自己的一些技巧。

    阅读更多:https://github.com/blog/967-github-secrets

    【讨论】:

      【解决方案3】:

      我发现有一种替代子模块的方法更实用:subtree

      据此link 的优点是:

      • 简单的工作流管理很容易。
      • 支持旧版本的 git(甚至在 v1.5.2 之前)。
      • 子项目的代码在超级项目的克隆完成后立即可用。
      • subtree 不需要您存储库的用户学习任何新内容,他们可以忽略您正在使用 subtree 来管理依赖项这一事实。
      • subtree 不会像 submodules doe(即 .gitmodule)那样添加新的元数据文件。
      • 可以修改模块的内容,而无需在其他地方拥有依赖项的单独存储库副本。

      【讨论】:

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