Git Repo 中的相关项目

Interrelated Projects in Git Repo

我有多个 git 存储库,为了方便起见,我想将它们放在另一个超级存储库中,但我真的不知道如何处理。 假设我正在开发一个包含前端和 api 的项目 - 每个都是一个单独的存储库。

为了方便起见,我想要一个包含项目和一些额外的构建和启动脚本的存储库。 我主要是 git 个子模块。但是随着子模块链接到特定的提交,每次我的一个子回购发生变化时,我的超级回购都会改变。这通常会很安静,因为我打算在这些子仓库中进行开发。 Git 子树似乎也不是我要找的。

我基本上只是想要一个写着 "this projects consists of these sub-projects that are linked to these remote repos" 的容器。但是我不希望我的容器项目跟踪子项目。

我遇到了 gitslave,它看起来很有希望满足我的需求,但 windows 总体而言,支持和文档似乎很差。

那么我该如何处理这种情况?

我认为您混淆了项目或工作区的用途和存储库的用途,这里有一些想法...

  1. Frontend 项目是否对 API 有编译时依赖?意思是 API 为前端定义了任何便利层?

    • 如果不是,那么听起来您不应该尝试使用子模块或 git 来定义您的项目。相反,只需将两个 repos 克隆到同一个文件夹中,并使用能够将任意文件夹作为项目打开的 IDE(参见 sublime)。在这种情况下,project/workspace 与 git 存储库不同。
  2. 您是否计划创建多个前端项目,每个项目使用一个 API?例如,您可能有一个投资应用程序和一个预算应用程序,它们都与同一个服务对话。

    • 如果是,那么我建议使用 git 子模块。 frontend1_repo 和 frontend2_repo 都有相同的子模块,即 api_repo。然后 frontend1_repo 和 frontend2_repo 将能够独立跟踪它们兼容的 api_repo 的版本(when/if 你最终做出了重大的 API 改变).请考虑使用 semantic versioning。然后使用您想要的任何 IDE,在这种情况下,git 存储库与 project/workspace.

    • 相同
    • 如果不是,那么我建议简单地将 API 存储库嵌入到前端存储库中。这减少了项目维护并避免了需要进行的任何版本控制。然后使用您想要的任何 IDE,在这种情况下,git 存储库与 project/workspace 相同。请记住,如果您维护一个干净的文件夹结构,那么如果您最终想在将来创建一个新的前端,则可以将 API 目录挑选到一个新的存储库中。