用于推送的Git本机协议或SSH协议之间的区别

时间:2011-12-19 00:46:04

标签: git ssh protocols push

使用SSH协议(ssh://)或Git (git://)协议进行推送是否存在性能差异?

如果我想使用Git,我是否必须设置git服务器dameon并在iptables中打开该端口?当SSH已经设置并正常工作时,似乎需要额外的大量工作,以及dameon的额外内存使用量。

使用本机git://协议必须有好处,因为GitHub使用它而不是ssh://。

2 个答案:

答案 0 :(得分:5)

首先,GitHub使用ssh作为主协议,并通过git协议提供只读访问。

git://将是克隆项目的最快方法,因为它没有加密和身份验证的开销。但除此之外,ssh://和git://都具有相同的git特定的传输优化。这就是为什么许多项目,包括GitHub上的项目,都有git://用于只读访问,而ssh用于推送。

所以为了回答你的问题,ssh://最适合推送,因为git://不用于推送。

答案 1 :(得分:0)

  

使用SSH协议(ssh://)或Git(git://)协议进行推送是否存在性能差异?

当然有ssh的加密。

  

如果我想使用Git,我是否必须设置git服务器dameon并在iptables中打开该端口?

取决于您选择的协议。由于您通常希望对推送进行身份验证(并且身份验证是加密的),因此通常使用ssh的工具 - 因为从本质上讲,您将运行git-native协议,但是通过ssh隧道。 (Impl详细信息:git-daemon和git-push都通过ssh产生了git-receive-pack的子实用性。)

git-daemon服务通常用于只读匿名访问,因为这里既不需要autha也不需要加密。