现在开发过程中,很多的实现某一些功能的工具,都是类似的服务器-客户端结构,即C-S架构,例如消息队列的KAFKA,文件存储的EasticSearch,包括我们日常工作中的数据库,他都是一种C-S架构,其本质上来说都是一种

存储-读取的操作,只是在很多时候,B端不仅仅实现了单一的存储功能,例如KAFKA实现了消息推送的功能,而git简单来说就像一个公有的存储仓库,给通过认证的人来管理他们文件(一般来说指的是代码文件),最为重要的是

它提供了一些对比文件差异,建立分支,代码提交等等功能.这里说的是git服务器端的搭建

一.协议-任何文件传输都离不开协议

GIT主要有四种协议:本地协议(Local),HTTP协议,SSH(SecureShell)协议以及Git协议

1.本地协议-本地作为仓库,拉去的时候运用的是拷贝功能

  最基本的是本地协议,其中远程版本库就是硬盘中的另一个目录,这常见于团队中每一个成员都对一个共享的文件系统拥有访问权,或者比较少见的人共用同一台电脑的情况下

     如果你实用共享文件系统就可以从本地版本库clone,push,pull

    $ git clone /opt/git/project.git

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

    如果URL开头明确指定file://,那么git的行为会略有不同,如果是指定路径,GIT会尝试实用硬链接(hard link)或者直接复制所需要的文件,指定file://的主要目的是取得一个没有外部参考或对象的干净库服版本

    通常是在其他版本控制系统导入后或者一些类似情况才需要这么做

    要增加一个本地版本库到现在的GIT项目,可以执行如下命令 $ git remoge add local_proj /opt/git/project.git

    优点:简单,世界实用了现有的文件呢权限和网络访问权限

    缺点:共享文件系统比较难配置,并且比起基本的网络连接访问,这不方便从多个位置访问,而且这个协议并不保护仓库避免意外的损坏,每一个用户都有远程目录的完成shell权限,没有方法可以阻止他们修改或删除git内部文件和 损坏仓库

  2.HTTP协议:

    只需要吧一个罗版本库放在HTTP根目录,设置一个post-update的挂钩就可以了,此时,只要能访问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   
    然后就可以通过如下的命令来clone了,$ git clone https://example.com/gitproject.git
    有点:可用性,相对于SSH协议,可以使用用户名/密码授权是一个很大的优势,这样用户就不需要在使用GIT之前在本地生成SSH秘钥对再把公钥上上传到服务器
    缺点:在一些服务器上,架设HHTP协议比较棘手,且如果在HTTP上使用需授权的推送,管理凭证会比使用SSH秘钥认证麻烦一些
 3.SSH协议    

    架设GIT服务器通常使用SSH协议作为传输协议,因为大多数环境下服务器已经支持通过SSH访问,即使没有也比较容易架设,SSH协议也是一个验证授权的网络协议,

    并且因为其不变形,架构和使用都比较简单

    通过SSH协议克隆版本库: $git clone ssh://user@server/project.git

    有点:比较容易架设

    缺点:不能通过他实现宁明访问,即使只是读取数据,使用者也要通过SSH访问你的主机的权限,这使得SSH协议不利于开源的项目

  4.GIT协议

    这是 GIT里的一个特殊的守护进程,他监听在一个特定的端口9418,类似于SSH服务,但是无需任何授权,

    有点:传输比较快

    缺点:缺乏授权机制

git-服务器搭建-协议概念的更多相关文章

  1. 【转】Windows平台下Git服务器搭建

    Windows平台下Git服务器搭建 Posted on 2015-05-18 21:29 阿祥当码农 阅读(7637) 评论(0) 编辑 收藏 该文章转自:http://www.codeceo.co ...

  2. Git系列(1) Windows下Git服务器搭建

    作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 我们这里只需要两个软件git和ssh, ...

  3. Windows下Git服务器搭建[转]

    Windows下Git服务器搭建   作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 ...

  4. Windows平台下Git服务器搭建--------gitblit

    Windows(server)平台下Git服务器搭建 第一步:下载Java,安装,配置环境变量. 第二步:下载Gitblit.下载地址:http://www.gitblit.com/ 第三步:解压缩下 ...

  5. 基于阿里云服务器的git服务器搭建

    使用阿里云Ubuntu 12.0.4 64位操作系统做git服务器. 首先git服务器有两种访问方式可以选择:http方式和ssh的方式,http方式更容易使用. 1.http方式的git服务器搭建以 ...

  6. CentOS 6.5下Git服务器搭建

    1 . Git服务器搭建 1. 环境部署 系统环境:服务器端:CentOS 6.5 ,ip:192.168.56.1 客户端:CentOS 6.5 ,ip:192.168.56.101 软件版本:服务 ...

  7. ECS之Git服务器搭建

    最简教程 ### . 安装Git 安装Git服务,命令如下: ```Shell $ yum install curl-devel expat-devel gettext-devel openssl-d ...

  8. git服务器搭建全程

    为了后续安装能正常进行,我们先来安装一些相关依赖库和编译工具 [root@VM_95_113_centos ~]# yum install curl-devel expat-devel gettext ...

  9. 使用gitolite进行git服务器搭建

    使用gitolite进行git服务器搭建 https://blog.csdn.net/pan0755/article/details/78460941 使用gitolite搭建,然后需要有个客户端进行 ...

  10. Windows下基于http的git服务器搭建-gitstack

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Windows下基于http的git服务器搭建-gitstack     本文地址:http: ...

随机推荐

  1. mysql官网下载yum

    1.进入mysql官网 2.下载页面最下方的社区下载 3.找到yum库 下载: 7.安装.rpm[root@test tools]# rpm -ivh mysql80-community-releas ...

  2. ABBYY FineReader添加盖章戳记

    PDF编辑器允许您如同在纸质文档上盖章一样在 PDF 文档上添加戳记.您可以从可用的戳记列表中选择戳记或者创建自己的戳记,然后添加任何所需的文本.戳记日期和时间或者图像. 如果要在页面上加上戳记,可以 ...

  3. ABBYY FineReader 与资源管理器的集成使用

    ABBYY FineReader 15(Windows系统)与 Windows 资源管理器的集成使用后,在不打开软件的情况下,可通过右击启动快捷菜单开启. 通过与Windows资源管理器的集成,用户可 ...

  4. 怎么用Camtasia给视频添加片头片尾

    有许多朋友现在喜欢自己拍摄一些小视频,现在不管是在抖音还是在B站,我们看到的大部分视频都有UP主自己制作的片头或片尾.片头做的好,甚至会有人因为片头而关注UP主,能吸引更多的人来观看视频. 所以,如果 ...

  5. C语言讲义——errno

    #define EPERM 1 /* Operation not permitted */ #define ENOENT 2 /* No such file or directory */ #defi ...

  6. Java基础教程——枚举类型

    枚举类型 枚举类型在JDK 5时引入. enum WeekEnum { MONDAY, TUESDAY, WEDNESDAY, THURDAY, FRIDAY, SATURDAY, SUNDAY } ...

  7. 【mq学习笔记】mq查找路由信息与故障延迟

    路由发现:缓存中的路由信息什么时候更新呢? 由QueueData转topicPublishInfo的List<QueueMessage>: 选择消息队列: sendLatencyFault ...

  8. 笔记本无法连接校园网,windows诊断显示校园网之未响应

    打开cmd(管理员): 输入以下四条,每一条都按enter ipconfig /flushdns ipconfig /registerdns ipconfig /release ipconfig / ...

  9. oracle ddl 与 dml

    DDL create table 创建表 alter table 修改表 drop table 删除表 truncate table 删除表中所有行 create index 创建索引 drop in ...

  10. NOIP 2020 退役记

    躲进你的身体. 哈哈 没想到这么快就轮到我退役啦 以前想想还感觉挺遥远的 这是我最后的机会啦! day-1 晚上照例吃了断头饭 但是没有蛋糕/kk 恭喜 Luckyblock 逃过一劫! (照照片的时 ...