15.Git四种协议-本地协议(local)、HTTP协议、SSH协议、Git协议
1.本地协议(loacl)
最基本的协议,其远程仓库其实就是硬盘内部的一个目录(例如D:\\project)。常见于团队内的人对一个共享的文件系统(例如NFS)具有访问权限,或者多人共用一台电脑的情况。
当搭建好硬盘上面的远程仓库之后,可以使用 git clone /d/project 来克隆本地的远程仓库。
还可以使用带file协议的路径: git clone file:///d/project 克隆本地远程仓库。
区别:1.仅指定路径:Git尝试使用硬链接(hard link)或直接复制所需要的资料;2.使用file://协议,Git触发用于网络传输资料的进程,效率低,慢。
本地协议的优点:搭建简单。直接使用了现有的文件权限和网络访问权限,如果已经有了共享文件系统,建立版本库会十分容易,只需要像设置其他共享目录一样,将一个Git仓库放在大家都能够访问到的路径并设置好读写权限就可以了。
缺点:不方便从多个位置访问,例如你在公司的电脑上搭建了本地仓库,你想在家里访问就有点困难了。不能保证Git仓库的安全,由于每一个人都具有仓库目录完整的shell权限,没有方法可以阻止他们删除或者破坏仓库。
2.HTTP协议
哑(DUMP)HTTP协议(旧,很少使用了):只支持只读模式。
智能(smart)HTTP协议(新,GitHub目前就使用了这种协议):支持读写模式。既可以像git://协议一样设置匿名服务,又可以像SSH一样提供传输时的授权和加密,而且只用一个URL就可以
得到git://和SSH的功能,省去了为不同的需求设置不同的URL。 HTTP协议推送(push)以及拉取(pull),服务器都会询问你的用户名和密码。
HTTP协议的优点:不同的访问方式只需要一个URL,服务器只在需要授权时提示输入授权信息。
相对于SSH而言,不需要生成SSH秘钥对再把秘钥上传到服务器上。
HTTP/S被广泛采用,一般的企业防火墙都会允许这些端口的数据通过。
缺点:在一些服务器上,架设HTTP/S协议会比SSH协议棘手一些;每次需要输入用户名和密码,管理这些凭证会比较麻烦一些(当然你可以使用凭证存储工具,keychain(OSX))。
除此之外没有别的缺点。
3.SSH协议
架设Git服务器时常用SSH协议作为传输协议,因为大多数环境都支持SSH访问,即使不支持也比较容易搭建。
$ git clone ssh://user@server/project.git //使用ssh协议clone一个仓库
优点:1.架设简单;2.数据传输时是安全的(所有数据传输时都经过授权和加密);3.高效,和其他3种协议一样,在传输数据时也会尽量压缩数据。
缺点:不能通过它实现匿名访问。即使使用者只需要读取数据,使用者也要有通过SSH访问你主机的权限,不利于开源项目。
4.Git协议
包含在Git里的一个特殊的守护进程中,监听一个特定的端口9418(类似于SSH服务,但是无需任何访问授权)。
优点:目前是Git所使用的协议里面最快的。如果你的项目不需要为写进行用户授权,可以使用Git协议。
缺点:1.缺乏授权机制,一旦放开推送操作,意味着网络上的任何人都能向你的项目推送代码;2.架设难。
15.Git四种协议-本地协议(local)、HTTP协议、SSH协议、Git协议的更多相关文章
- git学习笔记04-将本地仓库添加到GitHub远程仓库-git比svn先进的地方
第1步:创建SSH Key.在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步. 如果没有,打开Shel ...
- git远程库与本地联系报错fatal: Not a git repository (or any of the parent directories): .git
在github上新建了一个仓库,然后相与本地的仓库联系起来 $ git remote add origin https://github.com/liona329/learngit.git fatal ...
- application/json 四种常见的 POST 提交数据方式
四种常见的 POST 提交数据方式 HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 ...
- 转:application/json 四种常见的 POST 提交数据方式
四种常见的 POST 提交数据方式 HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 PO ...
- 框架-SPI四种模式+通用设备驱动实现
目录 前言 笔录草稿 SPI介绍 SPI四种模式 ** SPI 驱动框架 ** 框架 前言 SPI 介绍为搜集百度资料+个人理解 其余为原创(有误请指正) 集四种模式于一身 笔录草稿 SPI介绍 SP ...
- GIT服务器的四种协议
本地协议 最基本的就是_本地协议(Local protocol)_,所谓的远程仓库在该协议中的表示,就是硬盘上的另一个目录.这常见于团队每一个成员都对一个共享的文件系统(例如 NFS)拥有访问权,或者 ...
- http协议里定义的四种常见数据的post方法
原文 https://blog.csdn.net/charlene0824/article/details/51199292 关于http协议里定义的四种常见数据的post方法,分别是: applic ...
- RTSP、HTTP、HTTPS、SDP四种协议详解
我们将主要讲解RTSP,HTTP,HTTPS, SDP四种协议. 一:RTSP协议简介 实时流协议RTSP是一个应用层协议,用于控制具有实时特性的数据(例如多媒体流)的传送. RTSP协议一般与RT ...
- 属性传值,协议传值,block传值,单例传值四种界面传值方式
一.属性传值 对于属性传值而言,相对于其它的三种 方法来说,是最基础,最简单的一种 方法,但,属性传值 有很大的局限性,因为是适用于第一个界面向第二个界面传 值,第二个向第三个界面传值等等.N界面向N ...
随机推荐
- 使用注解方式实现 AOP和IoC
使用注解方式实现AOP和IoC IOC和DI的注解 IOC: @Component:实现Bean组件的定义 @Repository:用于标注DAO类,功能与@Component作用相当 @Servic ...
- 【素数判定/筛法进阶算法】-C++
今天我们来谈一谈素数的判定/筛法. 对于每一个OIer来说,在漫长的练习过程中,素数不可能不在我们的眼中出现,那么判定/筛素数也是每一个OIer应该掌握的操作,那么我们今天来分享几种从暴力到高效的判定 ...
- HTML 005 段落
HTML 段落 HTML 可以将文档分割为若干段落. HTML 段落 段落是通过 <p> 标签定义的. 实例 <p>这是一个段落 </p> <p>这是另 ...
- mongodb存储引擎WiredTiger
MongoDB3.2后默认采用WiredTiger存储引擎. 组成 WiredTiger由三部分组成: Mongos: 负责查询请求的路由和对ShardServer的管理: ConfigServe ...
- margin:auto你真的理解么
含义 margin:auto是具有强烈计算意味的关键字,用来计算元素对应方向应该获得的剩余空间大小 填充规则 (1) 如果一侧定值,一侧auto,则auto为剩余空间大小 (2) 如果两侧均是auto ...
- vue 组件的通信方式(完整版)
几种通信方式无外乎以下几种: Prop(常用) $emit (组件封装用的较多) .sync语法糖 (较少) $attrs & $listeners (组件封装用的较多) provide &a ...
- P4556 雨天的尾巴 线段树合并
使用线段树合并,每个节点维护一棵权值线段树,下标为救济粮种类,区间维护数量最多的救济粮编号(下标).所以每个节点答案即为\(tre[rot[x]]\). 然后运用树上点的差分思想,对于分发路径\(u, ...
- [转]C++ 类中的static成员的初始化和特点
在C++的类中有些成员变量初始化和一般数据类型的成员变量有所不同.以下测试编译环境为: ➜ g++ -v Using built-in specs. COLLECT_GCC=g++ Target: x ...
- python3编程基础之一:程序结构
程序从程序入口进入,到程序执行结束,大体是按照顺序结构执行语句.函数或代码块,掌握程序的结构,有利于把握程序的主体框架. 1.顺序结构--最常见的结构 顺序结构的程序设计是最简单的,只要按照解决问题的 ...
- ShardingSphere Hint模式 SpringBoot + Mybatis
ShardingSphere Hint模式不需要对sql进行解析,就可以进行数据库或者表的路由.下面贴一下代码,关于SpringBoot + Mybatis + ShardingSphere怎样结合. ...