You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何添加Git子模块但不递归引入其内部子模块?

阻止子模块递归引入的方法

当然有办法实现这个需求,以下是几种可行的方案:

  • 添加子模块时直接禁用递归
    在添加bar作为子模块的时候,使用--no-recurse-submodules参数:

    git submodule add --no-recurse-submodules .../bar.git
    

    这个命令会自动在仓库的.gitmodules文件中为bar子模块添加ignore = all配置,后续即使执行git submodule update --init --recursive,也会忽略bar内部的something子模块。

  • 修改现有子模块的配置
    如果已经添加了bar子模块,可以手动修改.gitmodules文件,找到bar对应的配置段,添加ignore = all:

    [submodule "bar"]
        path = bar
        url = .../bar.git
        ignore = all
    

    保存后执行git submodule sync同步配置,之后再运行git submodule update --init --recursive就不会拉取bar里的嵌套子模块了。

  • 临时跳过单个子模块的递归
    如果你只是想单次执行时跳过bar的子模块,可以先单独初始化bar(不递归),再递归处理其他子模块:

    git submodule update --init bar
    git submodule update --init --recursive --exclude=bar
    

    不过这种方法更适合临时需求,长期禁用还是前两种方法更稳妥。

内容的提问来源于stack exchange,提问作者Timmmm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 17:47:01