如何使GitHub项目成为存储库级别上更大解决方案的一部分?
我正在做一个项目,将有以下三个组成部分(一起工作):如何使GitHub项目成为存储库级别上更大解决方案的一部分?,git,github,Git,Github,我正在做一个项目,将有以下三个组成部分(一起工作): 自定义服务器端代码 自定义客户端代码 一个作为GitHub项目的第三方库(BSD许可) 作为开发的一部分,我可能会对第三方库项目进行更改,并且我希望将更改反馈给项目所有者,最好通过GitHub fork/pull请求 问题是,如果我不想让我的存储库完全开源并托管在GitHub上,我该如何构建我的存储库?如果它是100%封闭源代码的,我会有一个包含3个主文件夹的存储库,类似于ServerSide,ClientSide和LibraryXY但是
- 自定义服务器端代码
- 自定义客户端代码
- 一个作为GitHub项目的第三方库(BSD许可)
问题是,如果我不想让我的存储库完全开源并托管在GitHub上,我该如何构建我的存储库?如果它是100%封闭源代码的,我会有一个包含3个主文件夹的存储库,类似于
ServerSide
,ClientSide
和LibraryXY
但是我猜将第三方库的内容复制到LibraryXY
会使您很难在GitHub上将更改内容反馈给项目所有者。您可以使用git子模块
或git子树
命令
git存储库中的子模块就像一个子目录,它本身就是一个独立的git存储库。当git中的项目依赖于其他项目的特定版本时,这是一个有用的特性
子树允许子项目包含在子目录中
主项目的,可选包括子项目的
整个历史。例如,可以包含库的源代码
作为应用程序的子目录
基于您的项目结构,我建议您使用
git子树
谢谢。从描述来看,子模块似乎就是我要寻找的东西——有3个目录,其中一个以某种方式配置为从GitHub获取源代码。我是否能够将对源代码所做的更改“推送”回GitHub,还是只有一种方式?您应该能够做到:@Borek A子模块本身就是一个成熟的存储库。所以是的。请注意,子模块
机制的设计不如git的其他部分好,有时可能会有点混乱。