2010-2014 年更新:
ssh 和 https 是等效的,因为 Git 1.6.6+ (2010) 和实现智能http协议 https://stackoverflow.com/a/5265022/6309:
您现在可以使用 ssh 或 https 来对您的存储库进行读/写访问。
你也可以检测您的远程服务器是否支持智能http https://stackoverflow.com/a/18588665/6309.
如果必须使用代理,请添加正确的环境变量。
2015 年第 3 季度,如尤莎·阿莱尤布 https://stackoverflow.com/users/1429432/yousha-aleayoub提及在评论中 https://stackoverflow.com/questions/3248779/which-is-faster-ssh-or-git-protocol/3248848?noredirect=1#comment53080490_3248848:
GitHub“我应该使用哪个远程 URL?” https://help.github.com/articles/which-remote-url-should-i-use/
The https://
克隆 URL 可在所有存储库(公共和私有)上使用。
它们很聪明,因此会根据您对存储库的权限为您提供只读或读/写访问权限。
The git-http-backend http://git-scm.com/docs/git-http-backend is the:
简单的 CGI 程序,用于将 Git 存储库的内容提供给通过以下方式访问存储库的 Git 客户端http://
and https://
协议。
该程序支持使用智能 HTTP 协议和向后兼容的哑 HTTP 协议的客户端获取,以及使用智能 HTTP 协议的客户端推送。
原始答案(2010年7月):
来自专业 Git 书籍 http://progit.org/book/ch4-1.html:
Git 最常见的传输协议可能是 SSH。
这是因为大多数地方都已经设置了对服务器的 SSH 访问 — 如果没有设置,也很容易做到。
SSH 也是唯一可以轻松读取和写入的基于网络的协议。其他两个网络协议(HTTP 和 Git)通常是只读的,因此即使您将它们提供给普通大众,您仍然需要 SSH 来执行自己的写入命令。
SSH 也是一种经过身份验证的网络协议;由于它无处不在,因此通常很容易设置和使用。
所以它并不比 Git 协议“更智能”,只是对 Git 协议未解决的某些功能的补充协议。
Git 协议的缺点是缺乏身份验证。通常不希望 Git 协议成为项目的唯一访问方式。
一般来说,您会将其与 SSH 访问配对,供少数具有推送(写入)访问权限并让其他人使用的开发人员使用git://
用于只读访问
它还需要防火墙访问端口 9418,这不是企业防火墙始终允许的标准端口。在大型企业防火墙后面,这个不起眼的端口通常被阻止。
(这就是为什么在我的店里,我need使用 ssh+git 而不仅仅是 git,即使是读取访问:9418is被屏蔽了……)