Git Repo中的相关项目

时间:2018-11-06 13:04:18

标签: git repository git-submodules repo subtree

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

为了方便起见,我想要一个包含两个项目以及一些其他构建脚本和开始脚本的存储库。 我主要是git子模块。但是通过将子模块链接到特定的提交,每次我的子存储库之一更改时,我的超级存储库都会更改。正如我打算在这些子存储库中进行开发时,这通常很安静。 Git子树似乎也不是我要找的东西。

我基本上只是想有一个容器,上面写着“该项目由链接到这些远程仓库的这些子项目组成”。但是我不希望我的容器项目跟踪子项目。

我遇到了gitslave,它对我想要的东西很有前途,但是Windows支持和一般文档似乎很差。

那我该如何处理这样的情况?

1 个答案:

答案 0 :(得分:1)

我认为您在混淆项目或工作区的目的与存储库的目的,这是一些想法...

  1. Frontend项目是否在API上具有编译时依赖性? API是否为Frontend定义了任何方便层?

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

    • 如果是,那么我建议使用git子模块。 frontend1_repo和frontend2_repo都将具有相同的子模块api_repo。然后,frontend1_repo和frontend2_repo将能够独立跟踪它们兼容的api_repo的版本(当/如果您最终进行重大的API更改)。请考虑使用semantic versioning。然后使用所需的任何IDE,在这种情况下,git存储库与项目/工作区相同。

    • 如果否,那么我建议将API回购代码简单地嵌入到前端回购软件中。这减少了项目维护,并避免了需要进行的任何版本控制。然后使用您想要的任何IDE,在这种情况下git存储库与项目/工作区相同。请记住,如果您保持干净的文件夹结构,那么如果您最终希望将来将来创建新的Frontend,可以将API目录挑选到新的存储库中。