哪个高效?SSH:// 或 Git://(文件压缩)
我在 Git 中理解,git 协议很聪明,因为在通信的两端都有一个协议代理来压缩文件传输,从而通过有效地利用网络带宽来更快地克隆。
从O'Reilly 的书中,我发现了以下陈述。
For secure, authenticated connections, the Git native
protocol can be tunneled over an SSH connection using
the following URL templates:
ssh: //[user@]example.com[:port]/path/to/repo.git
ssh: //[user@]example.com/path/to/repo.git
ssh: //[user@]example.com/~user2/path/to/repo.git
ssh: //[user@]example.com/~/path/to/repo.git*
我不确定作者是否真的如他所说。他谈到 git 协议通过 SSH 建立隧道。
在我看来,除非你连接到 git 端口(代理端口),否则协议不会生效。SSH 只是一种未压缩的文件传输。但是按照作者的说法,如果我们使用 SSH,他说 git 协议是通过它隧道传输的。那么 SSH 在 GIT 中更智能吗?
冯 C,谢谢你的回答。“网络协议(HTTP 和 Git)通常是只读的”rw
当您使用--enable=receive-pack
.
以下是我的担忧。
当他们说 git 协议很聪明时,他们的意思是当你执行时git clone
,Git 服务器代理会压缩发送回客户端的数据,因此克隆应该更快。在我的用例中,我将在香港设置 Git 服务器并在圣何塞和其他国家/地区使用它,因此由于延迟问题,我希望通过网络提高效率。
所以我的问题是,当我使用git clone ssh://user@server/reposloc
git 协议时,我是否也能获得好处?根据 O'Reilly 作者的书,他的意思是 git 通过 ssh 建立隧道,那么当我没有在服务器上运行 git 守护程序时 git 协议如何工作。
那么使用 SSh://xyz... 是否同时提供 ssh 和 git 协议的好处?
提前感谢您的回答。