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

如何直接向作为闭源仓库子模块的GitHub开源库推送代码?

解决方案

你可以通过以下两种方式,在不修改.gitmodules文件的前提下,直接向HTTPS检出的子模块推送修改:

方案一:为子模块本地配置SSH推送地址(推荐)

这种方式让子模块保持HTTPS地址用于拉取(方便同事操作),但仅在你本地使用SSH地址推送,无需修改仓库共享的.gitmodules:

  1. 进入子模块目录:
    cd submodules/muscle
    
  2. 查看当前远程仓库的拉取/推送地址:
    git remote -v
    
  3. 修改远程仓库的推送地址为SSH格式:
    git remote set-url --push origin git@github.com:jfriesne/muscle.git
    
  4. 再次验证地址,确认拉取(fetch)是原HTTPS地址,推送(push)是SSH地址:
    git remote -v
    

完成后,你就可以直接在子模块目录执行git commit和git push,用SSH身份认证推送修改;同事拉取子模块时依然使用.gitmodules中的HTTPS地址,无需你的GitHub权限。

方案二:使用HTTPS + 个人访问令牌(PAT)推送

GitHub仍支持HTTPS推送,但需用**个人访问令牌(PAT)**替代密码认证:

  1. 在GitHub生成一个具备repo权限的个人访问令牌(PAT);
  2. 推送修改时,Git弹出身份验证请求时,用户名填写你的GitHub账号名,密码填写生成的PAT;
  3. 可选:配置Git凭证助手记住PAT,避免每次推送重复输入:
    git config --global credential.helper store
    

第一次输入PAT后,Git会将凭证存储在本地,后续推送无需再次验证。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 01:15:39