1

我们目前正在重构代码,以便在我们公司的不同项目之间共享代码。该共享代码将作为Git submodule包含在其他项目中。防止破坏git子模块更改的工作流程

我们担心的一件事是在项目的某些阶段(例如:我们应该稳定/代码冻结的一个点)突破从子模块向超级项目引入的变更。

我从来没有使用子模块,但根据我所知,子模块引用了另一个回购中的特定提交,因此只要不更新项目中的子模块,基本上就可以。

我的另一个队友建议,只要我们进入项目的“稳定阶段”(例如:完成开发),我们应该创建子模块的一个分支并指向它。我认为这是一种开销,似乎是错误的(共享项目不应该与其他使用它的项目锁定版本)。

所以,概括起来讲,我的问题是:

  1. 有没有在所有的事情应该怎样做才能保护子模块的更新(破变化)超级项目?
  2. 有没有一个已知的工作流程,其中一个超级项目进入稳定阶段,也创建了其子模块的新分支指向? (一个链接会很棒)。

回答

2

是否有任何应该做的事情来保护超级项目免受子模块更新(重大更改)?

号:任何修改在子模块完成(并推至其上游回购)将不会影响到母公司回购:它仍然会引用同gitlink(一special entry in the index of the parent repo)。

有没有一个已知的工作流程,其中一个超级项目进入稳定阶段,也创建了其子模块的新分支指向?

否:子模块是固定的SHA1。