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

时间:2018-01-25 14:31:53

标签: git git-submodules tortoisegit

我有一组Git子模块可以包含在多个项目中。我使用TortoiseGit并逐个添加到每个新项目都不方便。

例如,在TortoiseSVN中,可以将svn:externals简单地导出到文件中,然后将此文件应用于新项目。我正在寻找类似的东西(如果可能的话,我更愿意避免使用脚本)。

在这种情况下,我最好的选择是什么?

1 个答案:

答案 0 :(得分:2)

基本上,TortoiseGit添加子模块对话框只是git submodule add的GUI前端,它基本上只是工作树根目录中文件.gitmodules的包装器。

也就是说,您可以考虑自动调用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