我想实现的目标是每当我在主存储库上使用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'