[英]Copy git submodules from one repo to another
我正在开发一组依赖于一组通用的其他库的库。
我想将 .gitsubmodules 文件从一个包含所有必要子模块的存储库复制到所有其他存储库中。
但是我似乎无法让 git 识别子模块文件,或者以其他方式将子模块拉入新存储库。
Git 需要两件事来实现一个子模块:
.gitmodules
文件的配置,以及commit
条目...您可以通过运行git submodule add
获得。 这在文档中是明确的,其中说明了git submodule init
命令:
通过在
.git/config
中设置submodule.$name.url
来初始化索引中记录的子模块(在其他地方添加和提交)。 它使用.gitmodules
中的相同设置作为模板....
实际上,这意味着您需要为每个子模块运行git submodule add
。 如果您经常这样做,您可以编写一个脚本,从.gitmodules
文件中读取子模块配置并运行适当的git submodule add
命令。 也许是这样的:
#!/bin/bash
submodules=( $(git config -f .gitmodules --name-only --get-regexp 'submodule\..*\.path' | cut -f2 -d.) )
for name in "${submodules[@]}"; do
path="$(git config -f .gitmodules --get submodule."$name".path)"
url="$(git config -f .gitmodules --get submodule."$name".url)"
git submodule add "$url" "$path"
done
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.