git 独立特征的分支策略

git branching strategy for independent features

我正在尝试为结构如下的应用程序设置适当的分支策略。

以下是应用程序的目录结构

|______SuperApp
|          |______CommonCode
|          |
|          |______App1
|          |
|          |______App2
|
|_____ InfraStructureCode

SuperApp 由多个微型应用程序组成,只要存在通用代码和基础架构代码目录,就可以独立开发/工作。

我们要设置的约束是,

i) 开发特定应用程序(比如 App1)的开发人员不应有权推送与通用代码或基础架构代码相关的更改。

目前我们使用

实现这个
git update-index --skip-worktree <DirectorytoSKIP>

ii) 在 App1、App2 等应用程序之间保持一定程度的原子性,

(即)目前,如果我们从 develop 创建一个新分支,在 App1 中添加一个新功能,所有其他应用程序目录(App2、App3)也将被包含在内。

那么保持原子性有没有更好的分支策略?

理想情况下,我们希望功能分支仅具有公共代码、基础结构代码和正在开发的特定微应用程序 (App1)。

但是在 master 分支或者 release 分支中,我们希望维护整个应用程序(如上所示的目录结构)。

分支用于隔离一个或多个 Git 个存储库的开发工作。
不在“Git 存储库的一部分”。

每个模块(app、common、lib)需要一个 Git 存储库,这样您就可以使用 submodules 根据需要组合它们。

对于使用所述子模块的每个父存储库,您将能够应用您想要的分支策略,而不必担心“隐藏”某些子文件夹。