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

标签 git github

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

  • 自定义服务器端代码
  • 自定义客户端代码
  • 一个作为 GitHub 项目的第 3 方库(BSD 许可)

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

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

最佳答案

您可以使用 git submodulegit subtree 命令。

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

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

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

关于git - 如何使 GitHub 项目成为存储库级别更大解决方案的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8545612/

相关文章:

git - 从 git 中删除历史记录 - git 命令失败

git - 删除所有 Git 提交历史

python - 如何将新文件推送到 GitHub?

git - 使用 Github API 从短哈希获取 git commit

每个文件的 Git 提交统计

git - 如何在本地收缩后更新远程 .git 文件夹

windows - 在 Windows 上使用引号名称的 Git 标签

Github Pages 为 Jekyll 站点抛出 `Page build failure`

javascript - APM header 内容包含无效字符

github - Appveyor 上的 GitHub API 未经授权的响应