使用 git pull 更新储存库会同时更新子模块仓库吗?

2019-11-01 11:10:22 +08:00
 VKMEPR

git 新手有个疑问,git clone 储存库时添加--recursive 参数可以初始化包含子模块。

以后 git pull 更新会同时更新子模块内容吗?

另外如果父仓库新增了其它子模块,会不会也会自动初始化包含新的子模块?

3767 次点击
所在节点    git
7 条回复
airfling
2019-11-01 11:12:19 +08:00
两个都不会,除非你主动更新子模块和主动初始化子模块
VKMEPR
2019-11-01 11:20:39 +08:00
@airfling 这样呀,网上搜索一般用 submodule update --init --recursive 初始化和更新子模块,测试这个命令不带 --recursive 参数运行似乎也没什么区别,这个参数在该场景下有必要使用吗?
airfling
2019-11-01 11:32:13 +08:00
recursive 这个参数就是递归执行的意思啊,不加就是只执行当前模块的 git 仓库,加的话就是递归执行当前仓库的所有模块和子模块
find456789
2019-11-01 14:36:36 +08:00
git subtree 了解下?
VKMEPR
2019-11-01 15:44:39 +08:00
@airfling 在 git clone 储存库后添加子模块用 git submodule update --init --recursive 命令,但测试发现其中不加 --recursive 效果也一样,也添加了所有子模块,所以好奇他们之间有什么区别?哪个是正确用法?假设目的是更新当前父储存库下的所有子模块。
momocraft
2019-11-01 15:45:46 +08:00
recursive 的意思是 submodule 的 submodule
VKMEPR
2019-11-01 15:48:40 +08:00
@momocraft 哦,就是父储存库 -> 包含的子模块 -> 子模块里包含的其它子模块?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/615162

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX