一次添加多个Git子模块最简单的方法是什么?

aiazj4mn  于 2023-02-11  发布在  Git
关注(0)|答案(1)|浏览(197)

我有一组Git子模块要包含在多个项目中,我使用TortoiseGit,将它们逐个添加到每个新项目中并不方便。
例如,在TortoiseSVN中,可以简单地将svn:externals导出到一个文件,然后将此文件应用到一个新项目中。我正在寻找类似的东西(如果可能的话,我希望避免脚本)。
在这种情况下,我最好的赌注是什么?

kxeu7u2r

kxeu7u2r1#

基本上,TortoiseGit添加子模块对话框只是git submodule add的GUI前端,它基本上只是工作树根中文件.gitmodules的 Package 器。
也就是说,你可以考虑自动调用git submodule add,或者手工写一个.gitmodules(或者从另一个仓库复制),然后注册子模块(这不能用TortoiseGit ATM完成):

git config -f .gitmodules --get-regexp '^submodule\..*\.path$' |
    while read path_key path
    do
        url_key=$(echo $path_key | sed 's/\.path/.url/')
        url=$(git config -f .gitmodules --get "$url_key")
        git submodule add $url $path
done

基于:https://gist.github.com/aroemen/5027030

相关问题