当子模块或子模块的上游源或源的内容发生变化时自动更新 Git 存储库的工具?
Tooling to Automatically Update Git Repositories When Their Submodule's or Submodules' Upstream Source's or Sources' Contents Change?
存在哪些工具旨在使更新 Git 存储库及其子模块元数据变得容易(或至少 更容易)该父存储库中包含的任何子模块都在上游发生变化吗?我看过建议使用 Git 挂钩或持续集成和部署系统以这种方式管理此类事情的建议,但似乎没有人想出并充分解释了一个可行的综合解决方案。
首先取决于主父存储库如何引用其子模块。
如果它有 submodules tracking a branch,那么一个简单的命令就足以用新的子模块内容更新父仓库:
git submodule update --recursive --remote
然后您需要做的就是定期执行(cron 作业、Jenkins 作业……),您的主存储库将始终是最新的。
could CI/CD see that a submodule the repository with which it's associated depends on has changed and run this for you if it can?
一份工作可以:
get the SHA1 of the gitlink associated to a submodule
git rev-parse released-1.2.3^{commit}:foo
执行所有子模块的更新
git submodule update --recursive --remote
比较子模块的SHA1与原来的SHA1:如果有任何变化,子模块不再引用相同的SHA1并且有一些变化。
存在哪些工具旨在使更新 Git 存储库及其子模块元数据变得容易(或至少 更容易)该父存储库中包含的任何子模块都在上游发生变化吗?我看过建议使用 Git 挂钩或持续集成和部署系统以这种方式管理此类事情的建议,但似乎没有人想出并充分解释了一个可行的综合解决方案。
首先取决于主父存储库如何引用其子模块。
如果它有 submodules tracking a branch,那么一个简单的命令就足以用新的子模块内容更新父仓库:
git submodule update --recursive --remote
然后您需要做的就是定期执行(cron 作业、Jenkins 作业……),您的主存储库将始终是最新的。
could CI/CD see that a submodule the repository with which it's associated depends on has changed and run this for you if it can?
一份工作可以:
get the SHA1 of the gitlink associated to a submodule
git rev-parse released-1.2.3^{commit}:foo
执行所有子模块的更新
git submodule update --recursive --remote
比较子模块的SHA1与原来的SHA1:如果有任何变化,子模块不再引用相同的SHA1并且有一些变化。