首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向git中添加子模块列表。

向git中添加子模块列表。
EN

Stack Overflow用户
提问于 2016-05-25 09:10:00
回答 2查看 942关注 0票数 2

我克隆了一个项目并定制了它。该项目正在使用一些额外的项目作为子模块。我已经设置了我的git存储库,并将主项目推到那里。但是我没有将子模块添加到我的git项目中。

我想要将子模块拉到我的项目中。我知道,使用以下命令,我可以一个一个地添加子模块:

git子模块添加<sub-m url> <path>

但他们很多。还有另外一种方法可以自动地将它们添加到一起吗?以下是子模块的列表:

代码语言:javascript
复制
submodule "submodules/bcg729"]
    url = git://git.linphone.org/bcg729.git
[submodule "submodules/bctoolbox"]
    url = git://git.linphone.org/bctoolbox.git
[submodule "submodules/belcard"]
    url = git://git.linphone.org/belcard.git
[submodule "belle-sip"]
    url = git://git.linphone.org/belle-sip.git
[submodule "submodules/belr"]
    url = git://git.linphone.org/belr.git
[submodule "submodules/bzrtp"]
    url = git://git.linphone.org/bzrtp.git
[submodule "submodules/cmake-builder"]
    url = git://git.linphone.org/linphone-cmake-builder.git
[submodule "submodules/externals/antlr3"]
    url = git://git.linphone.org/antlr3.git
[submodule "submodules/externals/axmlrpc"]
    url = git://git.linphone.org/axmlrpc.git
[submodule "submodules/externals/bv16-floatingpoint"]
    url = git://git.linphone.org/bv16-floatingpoint.git
[submodule "submodules/externals/cunit"]
    url = git://git.linphone.org/cunit.git
[submodule "submodules/externals/ffmpeg"]
    url = git://git.linphone.org/ffmpeg.git
[submodule "submodules/externals/gsm"]
    url = git://git.linphone.org/gsm.git
[submodule "submodules/externals/libmatroska"]
    url = git://git.linphone.org/libmatroska-c.git
[submodule "submodules/externals/libupnp"]
    url = git://git.linphone.org/libupnp.git
[submodule "submodules/externals/libvpx"]
    url = https://chromium.googlesource.com/webm/libvpx
[submodule "submodules/externals/libxml2"]
    url = git://git.gnome.org/libxml2.git
[submodule "submodules/externals/mbedtls"]
    url = git://git.linphone.org/mbedtls.git
[submodule "submodules/externals/opencore-amr"]
    url = git://git.linphone.org/opencore-amr.git
[submodule "submodules/externals/openh264"]
    url = https://github.com/cisco/openh264
[submodule "submodules/externals/opus"]
    url = git://git.linphone.org/opus.git
[submodule "submodules/externals/speex"]
    url = git://git.linphone.org/speex.git
[submodule "submodules/externals/srtp"]
    url = git://git.linphone.org/srtp.git
[submodule "submodules/externals/vo-amrwbenc"]
    url = git://git.linphone.org/vo-amrwbenc.git
[submodule "submodules/externals/x264"]
    url = git://git.linphone.org/x264.git
[submodule "submodules/linphone"]
    url = git://git.linphone.org/linphone.git
[submodule "submodules/msamr"]
    url = git://git.linphone.org/msamr.git
[submodule "submodules/mscodec2"]
    url = git://git.linphone.org/mscodec2.git
[submodule "submodules/msopenh264"]
    url = git://git.linphone.org/msopenh264.git
[submodule "submodules/mssilk"]
    url = git://git.linphone.org/mssilk.git
[submodule "submodules/mswebrtc"]
    url = git://git.linphone.org/mswebrtc.git
[submodule "submodules/msx264"]
    url = git://git.linphone.org/msx264.git
[submodule "linphone"]
    url = git://git.linphone.org/linphone.git
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-25 09:58:25

我不认为对吉特有这样的办法。但是,您只需执行一个shell脚本,该脚本将迭代列表并对每个列表调用git submodule add,然后逐个调用。

为什么只将它们复制到.gitmodules或. .git/index并不能达到目的:

"git子模块add“命令做了几件事:

  • 它克隆当前目录下的子模块,并默认情况下签出主分支。
  • 它将子模块的克隆路径添加到".gitmodules“文件中,并将该文件添加到索引中,以便提交。
  • 它将子模块的当前提交ID添加到索引中,准备提交。

(来源)

因此,您将错过最后一步,而git子模块init/update预期提交id已经到位。这就是你需要git submodule add的原因。

票数 3
EN

Stack Overflow用户

发布于 2016-05-25 12:12:57

根据@eis建议,您必须创建一个脚本来生成所有的git add命令。

这样做的一种方法是创建包含您的需求的.gitmodules,然后使用如下脚本解析它:

代码语言:javascript
复制
iterator=1;
subpaths=$(git config --file .gitmodules --get-regexp path | awk '{ print $2}');
subrepos=$(git config --file .gitmodules --get-regexp url | awk '{ print $2}');
for path in $subpaths; do
  repo=$(echo "$subrepos"| sed $iterator'q;d');
  git submodule add $repo $path;
  let iterator++;
done
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37432536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档