我需要编写一个脚本来克隆升压库 https://www.boost.org/,但不幸的是,存储库非常大,之后我只需要使用一些子模块。我想将它们存储在一个字符串变量中,如下所示
MODULES="tools/build libs/system"
然后将变量传递给一个命令,如下所示
git clone --recurse-submodules=${MODULES} https://github.com/boostorg/boost.git
问题是,将多个参数传递给--recurse-submodules
,所有这些都被忽略。
我看了一下如何只更新特定的 git 子模块? https://stackoverflow.com/questions/16728866/how-to-only-update-specific-git-submodules/31471460,但答案仅涵盖一个子模块的克隆或重复--recurse-submodules
多次,我不喜欢这样做,因为我想让脚本为任意数量的子模块做好准备。
有什么办法可以用 Git 来实现这一点吗?
您的想法是正确的,但不要使用变量,而是使用数组并以这种方式构建子模块。
modules=()
for mod in "tools/build" "libs/system"; do
modules+=( --recurse-submodules="$mod" )
done
In the for
循环添加所有模块名称,以便每次迭代在其之前添加所需的字段并生成完整的子模块数组。现在通过它git clone
作为引用数组扩展modules
git clone "${modules[@]}" https://github.com/boostorg/boost.git
The "${modules[@]}"
扩展为在上述步骤中生成的数组,每个生成的条目均由空格字符分隔。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)