写在前面的话
如果你是初学Git,意在掌握它的基本使用!那么建议你先阅读本章:本地协议模块
为什么把Git的协议篇放到前面来写呢?考虑到:
不是每个人都有Github或Gitlab,如果一开始学就要认人去申请这些东西,然后配置秘钥,创建仓库,可能很多人就死在这个路上了;
先了解Git的内部支持那些协议可以让你更好的学习后续遇到的问题.例如:学习本地协议之后,你完全可以忽略以上所有问题,自己模拟在本地搭建"托管服务"然后学习绝大部分你看到的关于Git的操作资料;
1. 本地协议
什么是本地协议?
你的操作系统[Windows/Linux]就是基于这个东西来访问的;例如:你保存了一个网页到本地,然后打开你保存的网页,你会看到浏览器打开的时候URL地址栏那个地方就是:,而就是本地协议的协议头,可以理解为一个标志:告诉浏览器或Git我使用的是本地协议,你到我本地的路径去找文件
如果什么协议头都没打,直接/开头,Git会默认使用本地协议去你本地找,所以你可以在本地模拟一个类似Github或者Gitlab的仓库托管服务,然后开启你学习Git之路[下一章会告诉大家怎么去搭建,如果你刚刚开始学习Git,你可以直接跳去下一章进行学习了]
优点
简单
直接使用现有文件权限和网络访问权限
缺点
配置共享文件系统难
不方便多位置访问
"远程磁盘"方式访问,配置不便,访问慢
文件协议不保护仓库意外的损坏
2. "哑(dumb)"协议
在Git 1.6.6版本之前只有哑协议可用,比较简单且通常是"只读模式",而且是谁都可以读
"哑协议"的只读限制是因为其服务端没有一个Git的守护进程在持续的关注"客户端"的所需并与之关注,故而使用哑协议,"客户端"是不能向"服务端"传输数据的
由于现在基本很少使用这种协议了,具体我也没使用过这个,这里只是总结官网上的文章稍微加了自己的理解,了解一下!
3. 智能协议
智能协议是Git在版本中引入的,运行在标准的HTTP/S端口上,并提供各种HTTP验证机制,是目前最常用的传输方式。
该协议在服务端运行了两组进程,分别负责上传[客户端的进程连接到服务端进程]和下载数据[客户端的进程连接服务端],它们可以读取本地数据,理解客户端有什么和需要什么,并为它生成合适的包文件.
优点
效率比哑协议高
提供使用各种的HTTP验证机制
即支持 "git://" 协议一样设置匿名服务,也可以像SSH协议一样提供传输时授权和加密数据
可用性强:①不同访问方式,只需一个URL及服务器只在需要授权时提示输入授权信息;②相比SSH协议,设置简单,免去设置公钥问题;③HTTP/S协议被广泛使用,一般的企业防火墙都会允许这些端口的数据通过;④可以在HTTPS协议上提供只读版本库的服务;甚至可以让客户端使用制定的SSL证书.
缺点
架设HTTP/S协议的服务端比SSH协议难
如果你在HTTP上使用需授权的推送,管理凭证会比使用SSH秘钥认证麻烦
4. SSH协议
SSH协议是一个需要验证授权【采用公私密钥】的、普遍、建设简单、使用简单的协议
使用SSH协议克隆项目
优点
建设SSH协议访问服务简单,而且大多数环境下已经支持SSH访问
SSH访问安全--所有传输数据都要经过授权和加密
SSH协议很高效,传输前会尽量的亚索数据[其他的协议也会]
缺点
不能匿名访问:①.不利于项目开源;②.如果你要同事提供匿名只读访问和SSH协议,那么需要搭建SSH服务和架设一个可以让他人访问的服务
生成SSH公钥
领取专属 10元无门槛券
私享最新 技术干货