学习 git clone 几种不同的协议

3,713 阅读2分钟

当我们去github上克隆代码仓库的时候,一般有两种选择,一种是https协议,一种是ssh协议。这也是最常用的两种协议了。

1. HTTPS协议(推荐)

优点:

  1. 对新手友好,使用简单,clone的时候只需要复制https的地址使用git clone即可
  2. 通常不会被代理或者企业防火墙阻拦。

缺点:

  1. 每次push代码时需要输入用户名以及密码。
  2. 效率比较低。克隆或者下载仓库需要更多的时间。

2. SSH协议(推荐)

优点:

  1. 效率高,传输快。传输之前会尽可能压缩数据。
  2. 当你在仓库中绑定了ssh key的时候,每次push代码就不需要每次都输入用户名密码了。
  3. 安全。所有数据传输都是加密以及授权的。

缺点:

  1. 必须加入ssh key.意味着你必须是项目所有者或者管理员。
  2. 不能实现仓库的匿名访问。即使是读数据,也必须保证能够通过ssh访问对应的仓库代码存储的主机才行。

3. GIT协议

优点:

  1. 效率非常高,传输快。

缺点:

  1. 没有授权机制。要么所有人都可以执行写操作,要么所有人都不可以。这也意味着一旦别人知道你的仓库URL,就拥有了对该仓库进行读写的权限。
  2. 该协议监听的是9418端口,意味着企业防火墙必须开放该端口,而企业级防火墙一般都会封锁这类不常见的端口。

4. LOCAL协议

优点:

  1. 简单。

缺点:

  1. 难以控制不同位置的访问权限。比如想在家里推送代码到公司的文件系统的仓库。