Dar*_*Var 3 git git-submodules
是否有命令为所有现有的 Git子模块设置相同的分支名称
git submodule add -b develop *
Run Code Online (Sandbox Code Playgroud)
基本上,我需要一种方法来递归设置.gitmodules
文件中每个模块的分支。
寻找一种递归方式在.gitmodules文件中设置分支
使用Git 2.22(四年后的2019年第二季度),您将可以使用git submodule set-branch -b <abranch>
,因为“ git submodule
”学习“ set-branch
”子命令
submodule.*.branch
可以修改设置。
请参见Denton Liu()的commit b57e811,commit c89c494(2019年2月8日)和commit 7a4bb55(2019年2月7日)。(由Junio C Hamano合并--在commit 01f8d78中,2019年4月25日)Denton-L
gitster
submodule
:教set-branch
子命令这教导
git-submodule
了set-branch
子命令,该子命令允许通过“瓷器”命令设置子模块的分支,而无需手动操作.gitmodules
文件。
对于您的情况,对于所有子模块,请使用git submodule foreach
:
git submodule foreach 'git submodule set-branch --branch aBranch -- ${sm_path}'
git submodule foreach 'git submodule set-branch --default -- ${sm_path}'
Run Code Online (Sandbox Code Playgroud)
(最后一行设置了' master
'分支,这是默认值)
在Git 2.22之前,您将使用我在“ 添加Git子模块时如何指定分支/标签? ”中提到的命令。
git submodule foreach 'git config -f .gitmodules submodule.${sm_path}.branch <branch>'
Run Code Online (Sandbox Code Playgroud)
注意:Git 2.24(Q4 2019)明确了--default
和--branch
选项是互斥的。
参见Denton Liu()的commit 40e747e(2019年9月16日)。(由Junio C Hamano合并--在7f17913号提交中,2019年10月7日)Denton-L
gitster
评估每个签出子模块中的任意 shell 命令。
git submodule foreach git checkout -b develop
Run Code Online (Sandbox Code Playgroud)