git - 从子模块存储库提交/推送更改不是一个坏习惯吗?

标签 git git-submodules

完整的问题是:

Isn't a bad practice to commit/push changes from a submodule repository instead of cloning it in a separate, independent repo and doing all the changes there?

我试图说服我的一些同事,向子模块存储库添加更改的“更干净”和最好的方法是将其克隆到单独的存储库中,添加更改(添加、提交、推送),然后更新“主机”项目中的子模块版本。然而,我在这件事上的史诗般的励志演讲对他们影响不大,我需要额外的论据弹药来改变他们的想法。目前,我发现的主要原因是:

  • 子模块存储库根据定义指向提交,而不是最新版本,因此从 DETACHED_HEAD 状态添加更改会很困惑。
  • 从概念上讲,子模块是一个依赖项。
  • 将子模块存储库克隆到一个单独的位置并在那里进行所有更改,然后将子模块 checkout 到新版本几乎不需要额外的工作。

还有其他支持(或反对)这个想法的论据吗?

提前致谢!

最佳答案

我通常直接在子模块中直接进行修改,前提是:

  • 我有权推送到其上游仓库
  • 对于每次推送,我都不会忘记转到子模块的当前父存储库,添加并命令新的 gitlink entry .

这使我可以测试正在使用它的父存储库内容中的子模块。

关于git - 从子模块存储库提交/推送更改不是一个坏习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27225902/

相关文章:

git - Git 中基于内容的寻址有什么好处?

git repo 提供了来自 WSL 的矛盾信息而不是标准 Windows

git - 如何设置 git 项目以使用外部 repo 子模块?

git - 如何正确管理子目录中被父目录忽略的 git repo 作为自己的项目?

git - 如何使现有 Git 存储库的一部分成为子模块

git - 如何使用 Gitlab Webhook 触发 Jenkins 多分支流水线

Git/Perforce 排除规则 - 允许忽略同级文件是否存在?

git - 如何设置 GitHub 存储库和分支以进行协作?

git - 为什么git会说“未暂缓提交更改”并指示子模块文件夹?

git - Jenkins:使用 Git 检索子模块