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

如何通过HTTPS URL克隆包含私有子模块的私有Git仓库?

Linux下递归克隆含私有HTTPS子模块的GitHub仓库

你可以通过配置Git凭证助手实现无需重复输入凭证、不嵌入PAT、不修改子模块URL的递归克隆,以下是两种常用方案:

1. 持久化凭证存储(适合长期使用)

方案A:明文文件存储(简单易用)

执行以下命令配置Git将凭证保存到本地文件:

git config --global credential.helper store

首次克隆主仓库或拉取子模块时,输入GitHub用户名和个人访问令牌(PAT)(需勾选repo权限),Git会自动将凭证写入~/.git-credentials文件(需确保该文件权限为600避免泄露),后续所有HTTPS操作都会自动读取凭证。

方案B:集成系统密钥环(更安全)

适合带桌面环境的Linux发行版(如GNOME、KDE),凭证会存储在系统密钥环中:

  1. 先安装依赖包:
    # Debian/Ubuntu 系列
    sudo apt install libsecret-1-0 libsecret-1-dev
    # RHEL/CentOS 系列
    sudo dnf install libsecret-devel
    
  2. 配置Git使用libsecret凭证助手:
    git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
    

首次输入用户名和PAT后,凭证会存入系统密钥环,后续操作自动调用,安全性更高。

2. 临时缓存凭证(会话内有效)

如果仅需临时使用,可配置Git缓存凭证15分钟(默认):

git config --global credential.helper cache
# 可选:修改缓存时长为1小时(3600秒)
git config --global credential.helper 'cache --timeout=3600'

首次输入凭证后,会话内的Git操作无需重复验证。

执行递归克隆

配置完成后,直接运行递归克隆命令:

git clone --recurse-submodules https://github.com/你的用户名/你的仓库.git

若已克隆主仓库,拉取子模块执行:

git submodule update --init --recursive

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 06:54:53