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 ...
随机推荐
- navigator对象及属性(userAgent)(扩展)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- guava字符串工具 Splitter 主要功能是拆分字符串为集合 Map
public class SplitterTest { public static void main(String args[]){ //1.拆分字符串为List集合 String str=&quo ...
- mysql删除完全重复数据保留一条
CREATE TABLE tmp AS (SELECT DISTINCT * FROM oa_organization);--将不重复的数据存入新建临时表tmp DELETE FROM oa_orga ...
- Educational Codeforces Round 55 题解
题解 CF1082A [Vasya and Book] 史上最难A题,没有之一 从题意可以看出,翻到目标页只有三种办法 先从\(x\)到\(1\),再从\(1\)到\(y\) 先从\(x\)到\(n\ ...
- qsing
qsing1 1.低仿机器人 一道大模拟 2.放爆竹 小辉原本想让小明告诉他,如果同时点燃n串雷,最多会有多长的时间至少有两串雷爆炸的声音是一样的. 但是小辉觉得这个问题真是太简单了,所以决定问小明, ...
- 点击按钮切换内容效果(使用CSS DIV与JavaScript)
<head><script type="text/javascript">function change_div(id){ if (id == 'gsyw ...
- Shiro + Redis集成思路
首先,确保Spring配置完毕了. 集成Shiro 1.在pom.xml中追加依赖 <dependency> <groupId>org.apache.shiro</gro ...
- Python的is和==
is是对比地址:==是对比值
- ICEM-圆柱与长方体相切
原视频下载地址:https://yunpan.cn/cqvgLe39ZU4Ke 访问密码 c1c9
- 走进JavaWeb技术世界11:单元测试框架Junit
JUnit你不知道的那些事儿 转自 老刘 码农翻身 2016-02-24 话说有一次Eric Gamma 坐飞机的时候偶遇Kent Beck(对,就是极限编程和TDD的发起人) , 两位大牛见面寒暄 ...