git服务器 四种协议,git的四种协议

一.任务

git 协议 主要四种

* 本地协议

* SSH 协议 同时支持读写操作的网络协议

* Git 协议 网络协议 只读 不能写操作

* HTTP 协议 :(不在服务器端运行Git) 网络协议 只读 不能写操作

本地协议

最基本的就是本地协议 常见于团队每一个成员都对一个共享的文件系统拥有访问权

,或者比较少见的多人共用同一台电脑的情况

如果你使用一个共享的文件系统,就可以在一个本地文件系统中克隆仓库,推送和获取。

克隆的时候只需要将远程仓库的路径作为 URL 使用,比如下面这样:

$ git clone /opt/git/project.git

$ git clone file:///opt/git/project.git

要添加一个本地仓库作为现有 Git 项目的远程仓库,可以这样做:

$ git remote add local_proj /opt/git/project.git

然后就可以向这个远程仓库推送和获取数据了

优点:

同时保留了现存文件的权限和网络访问权限 (大家都在意见屋子里办事,没有中间

商赚差价 就是比较方便 想看别人的直接在库里面看了)

应用前提:全体共享的文件系统。

也就是有一个共享系统,把裸仓库的副本放在

大家都能访问的地方,如果特殊需要就就像对西塔共享目录一样设置权限

缺点:

基于网络连接的访问相比更加困难和缓慢。(如果我在家里面想推一个文件还需要先挂载一个远程硬盘)

该方法不一定就是最快的,尤其是对于共享挂载的文件系统

(本地仓库只有在你对数据访问速度快的时候才快)

SSH 协议 (唯一一个同时支持读写操作的网络协议)

最常见的传输协议

大多数环境已经支持通过 SSH 对服务器的访问,

没有的话,架设起来也简单

优点:

架设相对简单

很多操作系统都自带了它或者相关的管理工具

访问安全 (所有数据传输都是加密和授权的)

在传输之前尽可能压缩数据

缺点: (受限制于访问主机的限制)

不能通过 SSH 协议实现仓库的匿名访问

不利于开源项目 (必须先通过 SSH 访问主机,再进行读写操作)

如果想允许对项目的匿名只读访问,那么除了为自己推送而架设 SSH 协议之外

,还需要支持其他协议以便他人访问读取。

Git 协议

由于没有授权机制,。要么所有人都能克隆 Git 仓库,要么谁也不能。

包含在Git 软件包中的特殊守护进程,

它会监听一个提供类似于SSH 服务的特殊端口(9418),无需任何授权.

打算支持 Git 协议的仓库,需要先创建

git-export-daemon-ok 文件

优点:

现存最快的传输协议

(当有一个对读操作进行授权的庞大项目,架设一个Git 守护进程提供仓库是不错的选择)

与 SSH 协议数据传输机制相同,但省去了加密和授权的开销

缺点:

缺少授权机制

用 Git 协议作为访问项目的方法一般是,同时提供SSH 接口,

让几个开发者拥有推送(写)权限,其他人通过 git:// 拥有只读权限

Git 协议可能也是最难架设的协议

该协议还要求防火墙开放 9418 端口,而企业级防火墙一般不允许对这个非标准端口的访问

HTTP/s 协议

HTTP 或 HTTPS 协议的优美之处在于架设的简便性

此后,每个能访问 Git 仓库所在服务器上 web 服务的人都可以进行克隆操作.

下面的操作可以允许通过 HTTP 对仓库进行读取:

$ cd /var/www/htdocs/

$ git clone --bare /path/to/git_project gitproject.git

$ cd gitproject.git

$ mv hooks/post-update.sample hooks/post-update

$ chmod a+x hooks/post-update

这条命令在你用 SSH 向仓库推送内容时运行;之后,其他人就可以用下面的命令来克隆仓库:

$ git clone http://example.com/gitproject.git

优点:

HTTP 协议的好处是易于架设

HTTP 协议不会占用过多服务器资源

通过 HTTPS 提供只读的仓库,可以加密传输内容

HTTP 还有个额外的好处:HTTP 是一个如此常见的协议,以至于企业级防火墙通常都允许其端口的通信。

缺点:

说客户端效率更低

HTTP 传输的体积和网络开销比其他任何一个协议都大

因为它没有按需供应的能力 — 传输过程中没有服务端的动态计算 — 因而 HTTP 协议经常会被称为傻瓜(dumb)协议

五.总结

ProGit的学习上,效率有些慢,现阶段打算调整学习方法,

计划:

对于时间管理方面,有点没有调理

还有学习任务顺序上的排布并不是特别合理

打算改变学习方法,投入更多的专注力,

边学习边写技术博客,不然晚上写日报的时候,

一是写不出来东西,二是有些影响心情

计划方面就这么多

终端输入git 出来的那些关键词开始看

还有progit 第三章 分支

学习情况:

关于git 的四种协议已经有了初步认识,理解详情以上参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值