我正在做一个将包含这 3 个组件(所有组件一起工作)的项目:
- 自定义服务器端代码
- 自定义客户端代码
- 一个作为 GitHub 项目的第 3 方库(BSD 许可)
作为开发的一部分,我很可能会对第 3 方库项目进行更改,并且我希望将我的更改贡献回项目所有者,最好通过 GitHub 分支/pull 请求。
问题是,如果我不希望它完全开源并托管在 GitHub 上,我该如何构建我的存储库(repositories)?如果它是 100% 封闭源代码,我会有一个包含 3 个主要文件夹的存储库,例如 ServerSide
、ClientSide
和 LibraryXY
但我猜将第 3 方库的内容复制到 LibraryXY
将很难将更改贡献回 GitHub 上的项目所有者。
最佳答案
您可以使用 git submodule
或 git subtree
命令。
git 存储库中的子模块就像一个子目录,它本身就是一个独立的 git 存储库。当您在 git 中有一个项目依赖于其他项目的特定版本时,这是一个有用的功能。 see details
子树允许子项目包含在子目录中 主项目的,可选地包括子项目的 整个历史。例如,您可以包含库的源代码 作为您的应用程序的子目录。 see details
根据你的项目结构,我建议你使用git subtree
关于git - 如何使 GitHub 项目成为存储库级别更大解决方案的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8545612/