【问题标题】:Difference Between Git Native Protocol Or SSH Protocol For Pushing用于推送的 Git 本机协议或 SSH 协议之间的区别
【发布时间】:2011-12-19 00:46:04
【问题描述】:
使用 SSH 协议 (ssh://) 或 Git (git://) 协议进行推送有性能差异吗?
如果我想使用 Git,我是否必须设置 git 服务器 dameon 并在 iptables 中打开该端口?当 SSH 已经设置和工作时,似乎需要做很多额外的工作,并且还需要额外的内存使用。
使用本机 git:// 协议一定有好处,因为 GitHub 使用它,而不是 ssh://。
【问题讨论】:
标签:
git
ssh
protocols
push
【解决方案1】:
首先,GitHub 使用 ssh 作为主要协议,通过 git 协议授予只读访问权限。
git:// 将是克隆项目的最快方式,因为它没有加密和身份验证的开销。但除此之外, ssh:// 和 git:// 都具有相同的 git 特定传输优化。这就是为什么许多项目,包括 GitHub 上的项目,都使用 git:// 进行只读访问,使用 ssh 进行推送。
所以回答你的问题,ssh:// 最适合推送,因为 git:// 不用于推送。
【解决方案2】:
使用 SSH 协议 (ssh://) 或 Git (git://) 协议进行推送有性能差异吗?
当然还有ssh的加密。
如果我想使用 Git,我是否必须设置 git 服务器 dameon 并在 iptables 中打开该端口?
取决于您选择的协议。由于您通常希望对推送进行身份验证(并且对身份验证进行加密),因此通常使用 ssh 的工具——因为本质上,您将运行 git-native 协议,但通过 ssh 隧道。 (Impl 细节:git-daemon 和 git-push 通过 ssh 生成 git-receive-pack 子实用程序。)
git-daemon 服务通常提供给只读匿名访问,因为这里既不需要身份验证也不需要加密。