是否可以与子模块同步签名主存储库的分支



我想实现的目标是每当我在主存储库上使用git结帐时:

git checkout my-branch

我的子模型将遵循我的分支,而不是独立的头部。

是否有可能,如果是,如何?

如果这些子模块存储库有自己的分支,可以宣布遵循该分支

cd /path/to/your/parent/repo/Foo
git config -f .gitmodules submodule.bar1.branch my-branch
git config -f .gitmodules submodule.bar2.branch my-branch
git submodule update --remote

,但这涉及重复每次您结帐父仓库中的分支。

托雷克在评论中指出,这些子模型可能具有自己的子模型,因此需要--recursive选项。

您可能还想将--recursive和/或--no-fetch添加到您的git submodule update --remote命令。
您可能需要git submodule foreach,而不是单独的git config -f操作,也许使用--recursive

git submodule foreach -q --recursive 'git config -f $toplevel/.gitmodules submodule.$name.branch my_branch'

在多行中以可读性:

git submodule foreach -q --recursive 
  'git config -f $toplevel/.gitmodules submodule.$name.branch my_branch'

然后,您可以检查每个分支机构的每个分支:

git submodule foreach -q --recursive 'branch="$(git config -f $toplevel/.gitmodules submodule.$name.branch)"; git checkout $branch'

在多行中以可读性:

git submodule foreach -q --recursive 
  'branch="$(git config -f $toplevel/.gitmodules submodule.$name.branch)"; 
   git checkout $branch'

最新更新