我有三个git存储库:A
,B
和C
。 C
是一个超级项目,包括子模块A
和B
,跟踪每个子模块的相应主分支。
当A
或B
的主分支被更改时,我必须在C
中执行以下操作:
git submodule update --remote
git add A
git add B
git commit -m "Update submodule A or B"
git push
此时,将执行从C自动构建和部署。
我正在寻找简化这一过程的方法。理想情况下,对A
或B
的主分支的任何提交都会触发更新,提交和推送到C
的钩子。任何想法如何实现这一目标?
编辑:如果我应该注意特定于供应商的功能,我将使用Azure DevOps进行git托管,使用Azure Pipelines进行构建和部署过程。
您可以使用git post-commit hook,当您在子模块中执行提交时,将执行挂钩并执行命令。
#!/bin/sh
branch="$(git rev-parse --abbrev-ref HEAD)"
if [ "$branch" = "master" ]; then
cd {super repo location}
git submodule update --remote
git add A
git add B
git commit -m "Update submodule A or B"
git push
fi
$ chmod +x .git/hooks/pre-commit