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

时间:2015-11-21 18:12:28

标签: git ssl ssh https

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

https:(这是http over ssl)

SSH

但未提及 git://

这是ISO OSI:

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

2 个答案:

答案 0 :(得分:11)

git protocol 是一个与Git一起打包的特殊守护程序;它侦听专用端口(9418),该端口提供类似于SSH协议的服务,但绝对没有身份验证。

它是在Git的最开始,在commit 2386d65 (July 2005, Git 0.99.1)

中引入的
  

在" git协议"添加第一个剪切连接逻辑。

     

用于从专用服务器中提取内容。而不是连接   使用ssh或只是启动本地管道,我们通过TCP连接到   另一边,试着看看是否有一个git服务器在监听。

     

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

     

(它应该读取一个数据包行,其格式应为

"git-upload-pack directoryname\n"
  

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

该协议最初在next commit 9b011b2

中描述
  

有两种Pack推挽协议。

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

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

  

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

请注意,即使在OSI模型中未列出,9418仍然从一开始就列为 IANA (Internet Assigned Numbers Authority)

请参阅commit ba8a497 (Setp. 2005, Git 0.99.7a

  

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

     

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

答案 1 :(得分:0)

如果我不理解错误,那么您可能会要求提供GIT自定义协议URI。如果是,则GIT URI为x-github-client://openRepo/<RepoLink>。它将在GIT桌面应用程序中打开Repo。

希望它会对您或某人有所帮助。