【问题标题】:How can I have multiple projects with their own local git repositories in one GitHub repository?如何在一个 GitHub 存储库中拥有多个具有自己本地 git 存储库的项目?
【发布时间】:2020-09-02 00:41:57
【问题描述】:

我是一名大学生,正在与几个同事一起从事一项暑期研究项目。我正在研究一个涉及 iOS 应用程序(使用 Swift/Xcode 构建)、Java 应用程序(使用 IntelliJ IDEA 构建)、Arduino 草图(使用 CLion/C++ 制作)和 MicroPython 文件(使用 PyCharm/制作)的研究项目Python)。由于我正在与团队中的其他人一起工作,并且所有这些单独的代码库都会产生一个成品,因此我希望拥有一个 GitHub 存储库,所有这些都存储在自己的子文件夹中。 Google 在他们的示例存储库中执行此操作:https://github.com/googlesamples/google-services。他们在“iOS”文件夹下有多个 Xcode 项目,在“Android”文件夹下有多个 Android 项目,以及一些源代码。 Xcode 项目似乎都有自己的存储库,因为每个项目中都有.gitignore 文件。此外,所有项目都在同一个分支上。如何在我自己的存储库中实现这一点?到目前为止,我已经尝试过子模块,它们似乎没有以可访问的方式将代码上传到 GitHub。我还尝试将 GitHub 存储库作为远程添加到每个项目并从那里推送项目,但我收到错误,因为 GitHub 存储库上的 master 分支具有未在本地反映的更改。我希望所有项目都在一个分支上,就像它们在 Google 存储库中一样。是否有可能所有项目共享一个本地存储库,还是无法管理?谢谢。

【问题讨论】:

  • 为什么要单独的本地仓库?你可以有一个 repo 将多个目录在本地和远程相同。

标签: git github git-submodules git-remote


【解决方案1】:

对于您的情况,理想的做法是使用Git BranchesMerge RequestForks。分支可以分为各种类别,如 Feature、Patch 等。

同时在一个 repo 中维护不同的项目,这是一个非常糟糕的主意。创建单独的存储库。

我不会在这里解释如何使用它们,因为 Stackoverflow 上已经有很多解释相同的答案,还有很多你可以在 google 上轻松找到的文章。


只是为了直接回答您的问题: 您可以在本地拥有一个包含多个目录的存储库,而在远程拥有相同的目录。

【讨论】:

  • 这对我的项目不起作用,因为我将在拨款提案中提交它,这要求项目的所有代码都在一个 GitHub 存储库中,都在同一个分支上。
【解决方案2】:

通过让所有项目共享一个本地 git 存储库,我能够实现我想要的。我同意这不是最佳实践或应该轻松完成的事情,但就我而言,我将在拨款提案中提交我的项目,该提案要求所有代码都在一个存储库中在同一个分支上。为了让所有项目共享一个本地存储库和master 分支,存储库必须位于整个项目的最高文件夹级别,并且子项目都可以添加到一系列子文件夹中。实现此目的的最简单方法是通过 GitHub Desktop 应用程序或 GitHub.com 将一个空的(减去克隆所需的 README 文件)存储库克隆到您的计算机,然后为每个项目创建子文件夹文件资源管理器/查找器。子项目可以有任意多个子文件夹,每个子项目可以有自己的.gitignore 文件。大多数 IDE 将识别 git 存储库,因此您无需创建或初始化另一个 git 存储库即可使用 IDE 的内置 VCS 工具。我已经使用 Xcode 和 JetBrains IDE 对此进行了测试,并且可以完美运行。

【讨论】:

  • 看起来你已经遵循了我对这个问题的评论。我也会将它包含在我的答案中,仅针对您的情况:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-10
  • 2021-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
相关资源
最近更新 更多