通过https更新Git子模块

Dun*_*zzz 21 git proxy git-submodules

我坐的代理只允许http/https流量,我能够从Github克隆存储库,但我必须使用https URL和用户名/密码来获取/推送.

现在我的问题是一个包含子模块的存储库,当我执行git submodule update它超时时,我只能假设这是因为它使用了被阻止的SSH连接.(它甚至没有要求我提供私人回购的密码)

fko*_*ler 34

.gitmodules使用https网址编辑文件,例如:

[submodule "vendor/engines/fat_free_crm"]
    path = vendor/engines/fat_free_crm
    url = https://github.com/fatfreecrm/fat_free_crm.git
Run Code Online (Sandbox Code Playgroud)

然后运行git submodule sync以反映对.git/config文件的更改.

致谢:https://stackoverflow.com/a/6632693/1273077

  • 谢谢你提到`git submodule sync` (7认同)

Ale*_*son 31

在您.gitmodules的仓库根目录中的.git/config文件中,以及在文件中,您应该找到子模块的一个部分.您可以在那里编辑网址,以便通过https请求而不是ssh访问它.

当然它可能已经是一个ssh url,在这种情况下问题可能是别的,但这是第一个要检查的地方.

  • 编辑``.gitmodules``后运行``git submodule sync``,正如FrançoisKoessler的回答所暗示的那样,是这个工作的必要步骤! (9认同)

tre*_*rex 6

如果您不想自己手动更改 .gitmodules 文件,现在可以使用 git CLI 来完成(确保您的 git 版本不是太旧)。

这将为您进行更改:

git submodule  set-url [--] <path> <newurl>
Run Code Online (Sandbox Code Playgroud)

例子:

git submodule set-url somedir https://github.com/somename/somerepo.git
Run Code Online (Sandbox Code Playgroud)