究竟是什么git://协议?

cad*_*alt 15 git ssh ssl https

我正在检查ISO OSI图表,您可以在其中看到git使用的其他两个协议:

https :(这是http over ssl)

SSH

但没有提到git://

这是ISO OSI:

https://en.wikipedia.org/wiki/OSI_model

Von*_*onC 13

Git协议 是在Git软件包中一个特殊的守护进程; 它侦听专用端口(9418),该端口提供类似于SSH协议的服务,但绝对没有身份验证.

它是在Git的最开始,在2386d65(2005年7月,Git 0.99.1)中提出的.

在"git protocol"连接逻辑中添加第一个剪切.

用于从专用服务器上拔出东西.我们不是通过ssh连接或只是启动本地管道,而是通过TCP连接到另一端,并尝试查看是否有git服务器正在侦听.

当然,既然我还没有编写git服务器,那就永远不会发生.但是服务器真的只需要监听端口,并在有人连接时执行"git-upload-pack".

(它应该读取一个数据包行,应该是格式的

"git-upload-pack directoryname\n"
Run Code Online (Sandbox Code Playgroud)

最终我们可能有服务器可能接受的其他命令.

该协议最初在下一次提交9b011b2中描述

有两种Pack推挽协议.

  • upload-pack(S)| fetch/clone-pack(C)协议:
  • send-pack| receive-pack协议

如今,git守护程序服务器的完整特性在中描述Documentation/git-daemon.txt.

一个非常简单的TCP Git守护程序,它通常侦听端口" DEFAULT_GIT_PORT"又名9418.
它等待连接请求服务,如果启用它将服务该服务.

请注意,即使未在OSI模型中列出,9418仍然从一开始就列为IANA(互联网号码分配机构)

commit ba8a497(Setp.2005,Git 0.99.7a:

[PATCH]添加有关IANA确认的说明

git端口(9418)现已由IANA正式列出.
记录下来.