git 本地协议、http、ssh、git协议优缺点总结对比
之前一直使用的是git的http协议来推拉代码,新公司使用的是git协议,好奇这两种的区别,科普了一下,https://cloud.tencent.com/developer/article/1347791,发现git的协议其实有四种,链接说的太啰嗦了,自己总结一下
协议 | 优点 | 缺点 |
本地协议 | 基于文件系统的版本库的优点是简单,并且直接使用了现有的文件权限和网络访问权限 | 通常共享文件系统比较难配置,并且比起基本的网络连接访问,这不方便从多个位置访问 |
http |
1. 不同的访问方式只需要一个 URL 以及服务器只在需要授权时提示输入授权信息,这两个简便性让终端用户使用 Git 变得非常简单 2. HTTP/S 协议被广泛使用,一般的企业防火墙都会允许这些端口的数据通过 |
1. 在一些服务器上,架设 HTTP/S 协议的服务端会比 SSH 协议的棘手一些 2. 在 HTTP 上使用需授权的推送,管理凭证会比使用 SSH 密钥认证麻烦一些 |
ssh |
1. SSH 架设相对简单 2. SSH 访问是安全的 3. SSH 协议很高效,在传输前也会尽量压缩数据 |
不能通过他实现匿名访问 |
git | Git 使用的网络传输协议里最快的 | 缺乏授权机制 |
## 本地协议 $ git clone /opt/git/project.git 或你可以执行这个命令: $ git clone file:///opt/git/project.git # 要增加一个本地版本库到现有的 Git 项目,可以执行如下的命令: $ git remote add local_proj /opt/git/project.git ## http $ git clone https://example.com/gitproject.git ## ssh # 通过 SSH 协议克隆版本库,你可以指定一个 ssh:// 的 URL: $ git clone ssh://user@server/project.git # 或者使用一个简短的 scp 式的写法: $ git clone user@server:project.git ## git $ git clone git@example.com:gitproject.git