繁体   English   中英

将 ssh 与 https 与 github 子模块一起使用

[英]Using ssh vs https with github submodules

我想建立一个带有子模块的公共 GitHub 存储库。 GitHub 提供了两种连接方式 - https:... & git@...协议。 对于从事该项目的团队来说, git@...更容易使用,因为我们都使用适当的 ssh 证书。 但是对于非团队成员的临时用户来说, https:...是唯一的选择。 git 子模块需要一个完整的 URL。

我们如何设置存储库子模块,以便开发人员和临时贡献者都可以同样好地使用系统? 谢谢!

使用https://协议发布您的子模块,但让所有开发人员都使用ssh://协议。 Git 可以即时用一种协议替换另一种协议

git config url."ssh://git@".insteadOf https://

首先,它不是“git 协议”,而是SSH协议,其 URL 类似于git@github.com:user:repo
(实际上有一个git协议,这几天不再使用了)

其次,将子模块的 URL 保持为 https:使用凭证管理器(如GCM for Windows )可以轻松缓存凭证(用户名/密码)。
但这意味着需要将这些用户添加为贡献者(无论您是否使用 HTTPS 或 SSH URL)

基于phd 的回答,我发现我必须指定--global以确保配置也适用于子模块。 这是我运行的命令:

git config --global 'url.ssh://git@example.com.insteadOf' 'https://example.com:PORT'

(作为答案发布,因为我没有评论的声誉)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM