如何使GitHub项目成为存储库级别的更大解决方案的一部分?

时间:2011-12-17 15:07:54

标签: git github

我正在做一个包含这三个组件的项目(所有这些组件一起工作):

  • 自定义服务器端代码
  • 自定义客户端代码
  • 一个第三方库是GitHub项目(获得BSD许可)

作为开发的一部分,我可能会对第三方库项目进行更改,并且我希望将更改贡献给项目所有者,最好通过GitHub fork / pull请求。

问题是,如果我不希望它完全开源并托管在GitHub上,我如何构建我的存储库(存储库)?如果它是100%封闭源代码,我会有一个包含3个主文件夹的存储库,例如ServerSideClientSideLibraryXY,但我想将第三方库的内容复制到LibraryXY会很难在GitHub上向项目所有者提供更改。

1 个答案:

答案 0 :(得分:3)

您可以使用git submodulegit subtree命令。

git存储库中的子模块就像一个子目录,它本身就是一个独立的git存储库。当您在git中拥有一个依赖于其他项目的特定版本的项目时,这是一个有用的功能。 see details

子树允许子项目包含在子目录中 主项目,可选择包括子项目 整个历史。例如,您可以包含库的源代码 作为您的应用程序的子目录。 see details

根据您的项目结构,我建议您使用git subtree