首页 > 解决方案 > Github 上的项目架构

问题描述

我的问题与基本面更相关。在我的项目中,我需要做出 2 个决定。

第一个是我有 3 个模块,我想将它们保存在单独的存储库中,其中一个是核心模块,而 mod1 和 mod2 依赖于此。如何在 Github 中组织这种结构,在核心模块中自动部署到 mod1 和 mod2?

第二部分更加复杂,可以根据第一部分进行更改(我猜)。由于我们使用 Mod1 和 Mod2 存储库直接用于 Azure 上的部署,因此其他团队的某些人将使用此基础存储库为不同的客户进行部署,但我们也希望将此存储库保留在同一组织下并保持例如 mod1 之间的连接和 mod1-project1。因为项目中的一些修改可以带回主存储库 Mod1。

此外,我们在 Mod1 和 Mod2 中有核心模块的副本,可以使用 github 操作部署它,但例如 Mod1-project1 的核心更改,可以带回核心模块,因为它们没有直接连接?

core-->mod1-->mod1-project1

mod1-project1-->mod1-->core

我们如何才能以合乎逻辑的方式维持这种关系?

标签: gitgithubgithub-actionsgit-submodules

解决方案


如何在 Github 中组织这种结构,在核心模块中自动部署到 mod1 和 mod2?

在 github 中有 3 个完全不同的存储库,然后通过子模块将这些存储库组合到 git 中。

git clone https://github.com/<user>/mod1 
git clone https://github.com/<user>/mod2
cd mod1
git submodule add https://github.com/<user>/core core
cd ..
cd mod2 
git submodule add https://github.com/<user>/core core

github 博客有关于如何使用子模块的说明:https ://github.blog/2016-02-01-working-with-submodules/


推荐阅读