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

如何使用GitHub访问令牌一次性克隆主仓库及其所有递归子模块

Git递归克隆子模块单次输入凭证解决方案

核心原因说明

Ubuntu默认Git凭证助手多为libsecret,子模块克隆时会触发独立Git进程调用GUI凭证输入框,你此前配置的内存缓存未跨进程生效,才会要求反复输入凭证。Windows环境下Visual Studio附带的Git默认绑定系统凭据管理器,可自动跨进程复用令牌,因此没有该问题。
另外弹出的用户名+密码输入框仍可使用令牌验证:用户名留空或填任意值,密码栏直接粘贴访问令牌即可通过验证,只是需要为每个子模块重复操作效率较低。

解决方案

方法1:全局配置凭证自动注入(永久生效,推荐)

该方案会让所有GitHub HTTPS请求自动携带令牌,无需重复配置:

  • 执行配置命令,将<your_access_token>替换为你的实际GitHub访问令牌:
    git config --global url."https://<your_access_token>@github.com/".insteadOf "https://github.com/"
  • 配置完成后直接执行原有克隆命令即可,主仓库和所有子模块会自动复用凭证:
    git clone --recurse-submodules --remote-submodules https://<access_token>@github.com/user/repo.git
  • 若后续需要移除该配置,执行:
    git config --global --unset url."https://<your_access_token>@github.com/".insteadOf

方法2:替换凭证助手修复缓存失效

  • 先清空原有冲突的凭证配置:
    git config --global --unset credential.helper
  • 若需要永久存储凭证,执行:
    git config --global credential.helper store
  • 若仅需要临时缓存,设置缓存时效为3600秒(可自定义时长):
    git config --global credential.helper 'cache --timeout=3600'
    配置完成后首次克隆输入一次令牌,所有子模块会自动复用缓存的凭证。

方法3:单次克隆临时配置(不修改全局设置)

如果不想改动全局Git配置,克隆时临时指定凭证助手即可:
git -c credential.helper='cache --timeout=300' clone --recurse-submodules --remote-submodules https://<access_token>@github.com/user/repo.git

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 01:48:02