【发布时间】:2021-10-27 06:03:50
【问题描述】:
每次我将提交推送到子模块时,我都需要将父 repo 更新为子模块中的最新提交。有没有自动的方法在遥控器中做到这一点?
我知道我无法直接实现这一点,但是有人可以建议 git 子模块的替代方案吗?我刚刚看到了 git-tree、google repo 工具,但不确定如何更改我当前的设置以使用这些工具?
【问题讨论】:
-
子模块 Git 存储库通常甚至不知道某些超级项目正在使用它们。这实际上是不可能的:如果我在 GitHub 上的 repo X 是您的子模块,并且我在我的 repo X 中进行了新提交,我不会提醒您注意它们。
-
@torek ,这是正确的,但我们可以在这个上做些什么,我的场景我想将基础设施相关代码放在一个单独的存储库中,应用程序代码应该在另一个存储库中,但是我的应用程序代码应该使用我的基础代码(在不同的仓库中)
-
如果你控制了两个 repos,这里没有问题:每当你在 repo S(子模块)中进行新的提交时,在 repo R(超级项目)中进行新的提交。为自己写一个小脚本(甚至是一个大脚本,无论大小如何)。
-
@torek ,但如果我的基础存储库发生变化,每次都需要更新近 15-20 个应用程序代码存储库。即使我们编写了一个脚本,该脚本应该在哪里执行??????,我们如何调用脚本??????目前,每当 infra repo 发生变化时,我都会手动更新所有 repo。
-
好的,所以你有一个“依赖于 S 的存储库”的列表。您的脚本将显示为:
for R in <list of Rs>或类似名称,具体取决于您用于编写脚本的语言。鉴于有许多,脚本可能应该维护一个小型数据库或日志文件,其中 已成功更新,而尚未更新。
标签: git git-submodules git-commit