我有一个 git 存储库,有人已经为其添加了子模块,并且似乎他们已将此子模块制作为 git url 而不是 https url,因此到目前为止,子模块更新尝试克隆它基于 ssh 的 git url。
我现在尝试将此子模块克隆类型更改为基于 https 的 url,并修改了
.gitmodules
文件,我在其中放置了正确的 https url,但是使用命令 git submodule update --init --recursive
克隆或更新子模块仍然使用基于 ssh 的 url。经过进一步检查,发现主存储库的 config
文件夹中的 .git
文件仍然具有 ssh url,我不确定我应该进一步遵循什么流程来本地更新以及将更改推送到其他人的主存储库.
将
git clone --recursive
中的初始 git submodule update --init --recursive
或 .gitmodules
URL 复制到 .git/config
后,.gitmodules
中的更改不会影响 .git/config
。您需要使用以下命令更新 .git/config
中的 URL:
git submodule sync --recursive
请参阅文档。
如果您只想修复一个 URL,可以像这样简单
cd <submodule_path>
git config submodule.<submodule_name>.url <new_URL>
cd <../back/to/the/superproject>
<submodule_path>
、<submodule_name>
、<new_URL>
、<../back/to/the/superproject>
是此处的占位符。