git - 防止 git 子模块发生重大更改的工作流程

标签 git version-control git-submodules project-structure multiple-projects

我们目前正在重构代码,以便在公司的不同项目之间共享。此共享代码将作为 Git submodule 包含在其他项目中.

我们担心的一件事是在项目的某些阶段从子模块引入 super 项目的破坏性更改(例如:我们应该稳定/代码卡住的点)。

我以前从未使用过子模块,但据我所知,子模块引用了另一个存储库中的特定提交,因此只要不更新项目中的子模块就基本上没问题。

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

总而言之,我的问题是:

  1. 是否应该采取任何措施来保护 super 项目免受子模块更新(重大更改)的影响?
  2. 是否存在已知的工作流程,其中进入稳定阶段的 super 项目还会创建一个指向其子模块的新分支? (如果有链接就好了)。

最佳答案

Is there anything at all that should be done to protect a super project from submodules updates (breaking changes) ?

否:在子模块中进行的任何修改(并推送到其上游存储库)都不会影响父存储库:它仍然会引用相同的 gitlink (special entry in the index of the parent repo)。

Is there a known workflow where a super project that goes into a stable phase, also creates a new branch of its submodules to point to?

否:子模块是固定的 SHA1。

关于git - 防止 git 子模块发生重大更改的工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32370975/

相关文章:

Git 子模块状态 - 如何显示子模块中的当前分支

git - 如何跟踪远程 git 分支?

git - 我可以为我添加一个覆盖项目 .gitignore 的 .gitignore 文件吗?

c++ - 图 - 强连通分量

java - 使用 jgit : Remote does not have <branchname> available for fetch 获取 Git 失败

git - .gitignore 文件添加到 Git 子模块中

git - 以确保干净/正确的工作树和子模块的方式更改分支 (Git)

linux - 'gitk' 安装在 Linux 上不起作用

git - 如何 merge 具有不同哈希的两个相同的提交?

version-control - 备份 cvs 存储库的最佳实践?