github与其他仓库链接


76

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

Answers:


60

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


3
如果我的项目与我依赖的原始回购无关,该怎么办?例如,我正在为脚本使用XML解析器,但是对该项目做出贡献并不是什么事,我是否仍应使用子模块?
user391986

@ user391986是的,这不仅仅是为另一个项目做出贡献。
manojlds 2012年

最后一个问题,当您在子模块中更新文件时(如果您进行更改)会更新我的或链接的仓库吗?
user391986

@ user391986-您说您没有为此做出贡献。如果按下,它将(尝试)更新链接的存储库。
manojlds 2012年

16

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

We should probably handle this with github/enterprise#59

这将为问题添加更新,并github/enterprise#59带有指向您的评论/提交的链接。

跨存储库问题参考

在此处输入图片说明

当然,GitHub的全部内容都涉及社交编码,但您也可以拥有社交存储库。您可以通过在问题中提及用户/资源库编号来引用资源库之间的问题。一旦我们看到类似的东西(例如github / enterprise#59),我们将确保更新github企业存储库中的问题#59,并让您知道它的引用来源。这是GitHub Flavored Markdown的一部分,它也有一些技巧。

了解更多:https//github.com/blog/967-github-secrets


15

我发现更实用的模块替代方法是:subtree

根据此链接,优点是:

  • 简单工作流程的管理很容易。
  • 支持较旧版本的git(甚至在v1.5.2之前)。
  • 超级项目的克隆完成后,就可以使用子项目的代码。
  • 子树不需要您存储库的用户学习任何新知识,他们可以忽略您正在使用子树来管理依赖项的事实。
  • 子树不会添加新的元数据文件,例如子模块doe(即.gitmodule)。
  • 可以修改模块的内容,而无需在其他地方具有依赖项的单独存储库副本。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.