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

如何在私有Git仓库中添加私有Git子模块?

私有仓库间添加Git子模块的操作方案

针对两个私有仓库间添加Git子模块的需求,以下是可行的操作方案和问题处理方法:

一、先搞定权限基础

首先得保证你用的账号同时能访问主仓库和子仓库:

  • 不管是GitHub、GitLab还是其他托管平台,要确认账号已经被添加到两个私有仓库的成员列表,至少有读取权限
  • 本地Git已经配置好对应的访问凭证(SSH密钥或者HTTPS账号密码)

二、优先用SSH地址添加(稳定无密码)

这是最省心的方式,配置一次SSH密钥后不用反复输密码:

  1. 先确认本地SSH密钥已经生成,并且公钥已经添加到你的平台账号SSH设置里
  2. 切换到主仓库的根目录,执行添加命令:
    git submodule add git@<平台域名>:<用户名>/<私有子仓库名>.git <本地要放的路径>
    
    举个GitHub的实际例子:
    git submodule add git@github.com:your-username/private-sub-repo.git ./submodules/my-sub
    
  3. 命令执行完后,把自动生成的.gitmodules文件和子模块目录提交到主仓库就行

三、用HTTPS地址添加(需配置凭证缓存)

如果习惯用HTTPS,得先配置Git缓存凭证,避免每次操作都输密码:

  1. 临时缓存凭证(默认15分钟有效):
    git config --global credential.helper cache
    
    或者设置长期缓存(存在系统钥匙串里):
    # macOS系统
    git config --global credential.helper osxkeychain
    # Windows系统
    git config --global credential.helper wincred
    
  2. 执行添加子模块命令:
    git submodule add https://<平台域名>/<用户名>/<私有子仓库名>.git <本地存放路径>
    
  3. 第一次执行会弹框或提示输入账号密码,之后Git会自动帮你缓存

四、常见坑的解决办法

  • 要是出现Permission denied错误:
    • 先检查SSH密钥是不是配错了,或者HTTPS账号有没有子仓库的访问权限
    • 核对一下子仓库的地址拼写,别写错用户名或仓库名
  • 克隆包含私有子模块的主仓库时,记得加--recurse-submodules参数,或者克隆完后执行:
    git submodule init
    git submodule update
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:59:53