git submodule


化石原创文章,转载请注明来源并保留原文链接


submodule可以用来链接子模块,通常是第三方在github上的源代码工程。在github上看源代码工程是,一般看到一些文件夹后面有@带上一串字符,就是这玩意。

使用普通的git clone url命令,这些链接的submodule不会被马上克隆到本地。如果克隆主工程后,发现没有submodule的代码,那么可以在该工程中使用

git submodule init
git submodule update

组合命令来拉取submodule的原代码。

当然,这样一个命令也能完成同样的任务:

git submodule update --init

在主工程中,submodule的url是存在.gitsubmodule文件中的,这个文件默认隐藏。里面是每个submodule的url,可以是https协议的,也可以是git协议的。

主工程的.gitsubmodule文件的协议可以修改,如果改了。需要用

git submodule sync

使你的修改跟./git/config中的相应地方同步。否则不会生效。

当然,git clone本身也提供一步到位的做法:

git版本1.6.5及以上:

git clone --recursive URL

git版本2.13以上:

git clone --recurse-submodules -j8 git://github.com/foo/example.git

j8表示同时并行8个任务拉取,可以不用。

如果因各种原因,git clone submodule中断的话,那么后续可以使用下面的命令继续。

git submodule update --recursive

化石原创文章,转载请注明来源并保留原文链接


发表评论

电子邮件地址不会被公开。 必填项已用*标注