如何将Git子模块的克隆URL从SSH改为HTTPS并同步到远程仓库?
解决Git子模块SSH转HTTPS后仍用旧URL的问题
- 同步本地配置:执行
git submodule sync --recursive,这个命令会把你修改的.gitmodules里的HTTPS URL同步到主仓库.git/config文件中,覆盖原来的SSH地址。 - 更新子模块自身的远程地址:进入子模块所在目录,执行
git remote set-url origin <你的HTTPS地址>,确保子模块自己的远程仓库地址也切换成HTTPS。 - 验证配置:
- 查看主仓库
.git/config里的子模块url字段,确认已经变成HTTPS; - 进入子模块目录执行
git remote -v,检查origin的地址是否正确。
- 查看主仓库
- 提交并推送修改:
- 把修改后的
.gitmodules加入暂存:git add .gitmodules - 提交更改:
git commit -m "将子模块克隆协议从SSH改为HTTPS" - 推送到远程主仓库:
git push
- 把修改后的
- 其他成员同步:团队成员拉取主仓库更新后,需要先执行
git submodule sync --recursive同步配置,再运行git submodule update --init --recursive,就能用HTTPS拉取子模块了。
内容的提问来源于stack exchange,提问作者Krishna
相关产品推荐
相关产品推荐

