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

能否在Git克隆命令中指定子模块要检出的提交?

能否在git clone --recursive时指定子模块的检出提交?

不行,直接使用git clone MAINREPO --recursive命令时,无法直接指定子模块要检出的提交。该命令会严格按照主仓库中记录的子模块绑定提交哈希,结合.gitmodules的配置来同步子模块。

如果需要让子模块检出特定提交,有两种实用方法:

  • 分步操作:
    1. 先克隆主仓库(不使用--recursive):git clone MAINREPO
    2. 进入主仓库目录:cd MAINREPO
    3. 初始化子模块:git submodule init
    4. 进入子模块目录,切换到目标提交:cd <子模块路径>,然后git checkout <目标提交哈希/分支/标签>
    5. 返回主仓库,提交子模块的新绑定状态:cd ..,git add <子模块路径>,git commit -m "更新子模块至指定提交"
  • 用git submodule update指定提交:
    克隆主仓库后,执行git submodule update --init --reference <目标提交哈希> <子模块路径>,直接将子模块更新到指定提交。

目前Git没有原生支持在git clone --recursive的单条命令中指定子模块的自定义提交,若需要批量处理,可编写脚本完成克隆后自动切换子模块到目标提交。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 20:45:14