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

使用git clone --recursive未克隆子模块的问题求助

Git子模块克隆失败排查与解决方法

问题详情

我在配置Git子模块时遇到克隆失败问题,涉及仓库为0xNOY.github.io。操作流程如下:

  1. 初始化仓库并添加子模块:
hugo new site 0xNOY.github.io
cd 0xNOY.github.io
git init
git submodule add https://github.com/CaiJimmy/hugo-theme-stack/ themes/stack
# 编辑部分文件
git add .
git commit -m "first commit"
# 推送到GitHub
  1. 在另一台电脑执行递归克隆命令:
git clone --recursive git@github.com:0xNOY/0xNOY.github.io.git

但子模块未被克隆,尝试以下命令仍无效果且无错误提示:

git submodule update --init --recursive
git submodule init
git submodule update

环境信息:

  • Git版本:2.40.1

排查与解决步骤

1. 验证远程仓库的子模块配置

登录GitHub仓库,确认.gitmodules文件存在且内容正确。正常配置应包含:

[submodule "themes/stack"]
    path = themes/stack
    url = https://github.com/CaiJimmy/hugo-theme-stack/

若文件缺失或内容错误,回到原仓库执行以下命令修复:

git add .gitmodules
git commit -m "修复:添加子模块配置文件"
git push

2. 检查原仓库的子模块状态

在原仓库执行git status,确认themes/stack被识别为子模块对象(而非普通目录)。如果是普通目录,说明添加子模块时出错,重新添加:

rm -rf themes/stack
git submodule add https://github.com/CaiJimmy/hugo-theme-stack/ themes/stack
git add .
git commit -m "重新添加子模块"
git push

3. 切换克隆协议重试

若SSH协议克隆失败,改用HTTPS协议:

git clone --recursive https://github.com/0xNOY/0xNOY.github.io.git

4. 手动强制初始化子模块

如果远程配置存在异常,手动指定子模块URL并更新:

git submodule add https://github.com/CaiJimmy/hugo-theme-stack/ themes/stack
git submodule update --init --recursive

5. 检查Git全局配置

查看是否有禁用子模块的配置项:

git config --list | grep submodule

若存在异常配置(如submodule.active为空或错误),执行重置:

git config --unset submodule.active

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 05:35:20