代码之家  ›  专栏  ›  技术社区  ›  krishna

将git子模块克隆url从ssh更改为https

  •  0
  • krishna  · 技术社区  · 2 年前

    我有一个git repo,有人已经为它添加了子模块,似乎他们已经将这个子模块作为git url而不是https url,所以到目前为止,子模块更新尝试克隆它基于ssh的git url。

    我现在正试图将此子模块克隆类型更改为基于https的url,并已修改 .gitmodules 文件中我已经放置了正确的https url,但是使用命令克隆或更新子模块 git submodule update --init --recursive 仍然使用基于ssh的url。经进一步检查,发现 config 文件在 .git 主repo的文件夹仍然有ssh-url,我不确定我应该遵循什么过程来进一步进行本地更新,以及为其他人将更改推送到主repo。

    1 回复  |  直到 2 年前
        1
  •  1
  •   phd    2 年前

    初始后 git clone --recursive git submodule update --init --recursive URL来自 .gitmodules 复制到 .git/config 以及的变化 .gitmodules 不影响 .git/config 。您需要更新中的URL .git/config 使用此命令:

    git submodule sync --recursive
    

    看见 the docs .

    如果你只想修复一个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> 是占位符。