gpt4 book ai didi

git - 将 git 的 submodule.recurse 配置选项设置为 true 有什么缺点?

转载 作者:太空狗 更新时间:2023-10-29 13:10:41 26 4
gpt4 key购买 nike

这个问题Is there a way to make git pull automatically update submodules?有一个像这样配置 git 的公认答案:

git config --global submodule.recurse true

就像对该答案的评论之一一样,我想知道为什么这不是 git 的默认行为;更准确地说,设置此配置选项的缺点是什么?

最佳答案

此选项在 commit 046b482 中引入, 最初用于工作树操纵命令 ( read-tree/checkout/reset )

git grep/fetch/pull/push紧随其后。
然而,作为the documentation mentions ,与下面的其他命令不同,clone 仍然需要自己的递归标志: git clone --recurse-submodules <URL> <directory> .
看这个recent discussion :

This was a design decision once it was introduced, as the git clone might be too large.
Maybe we need to revisit that decision and just clone the submodules if submodule.recurse is set.

由于所涉及的子模块的数量/大小可能很大,目前默认行为是默认不递归包含它们。

它们的主要缺点是由于必须在每个子模块(以及它们各自的子模块)中递归进行而可能引入的时间开销。
如果你有很多,并且不需要全部,最好关闭该选项,并指定 --recursive当你需要的时候。

然而,一个优点是在切换分支时避免看到“未跟踪文件”,as seen in this discussion .


警告,从 Git 2.34(2021 年第 4 季度)开始,git clone --recurse-submodules , 意味着一个简单的 git pull将递归到子模块中。

即使 git config --global submodule.recurse 设置。

参见“Is there a way to make git pull automatically update submodules?”。

关于git - 将 git 的 submodule.recurse 配置选项设置为 true 有什么缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53514521/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com