现在开发过程中,很多的实现某一些功能的工具,都是类似的服务器-客户端结构,即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. Python面试题_中级版

    Python 面试题 1.Python是如何进行内存管理的 对象引用机制.垃圾回收机制.内存池机制 1.1对象引用机制 Python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数. 引 ...

  2. DP中环形处理 +(POJ 1179 题解)

    DP中环形处理 对于DP中存在环的情况,大致有两种处理的方法: 对于很多的区间DP来说,很常见的方法就是把原来的环从任意两点断开(注意并不是直接删掉这条边),在复制一条一模一样的链在这条链的后方,当做 ...

  3. 还是畅通工程(最小生成树 并查集 Prim Kruskal)

    Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只 ...

  4. 如何用CDR做出毛笔字效果

    不仅仅是水墨字,毛笔字在CDR中的制作也是很简单的.一般来讲,水墨字其实跟毛笔字有相通之处,也可以说毛笔字是水墨字的一种,在CDR中的实现也是既简单又实用的. 方法一:艺术笔工具 艺术笔工具是比较便捷 ...

  5. Folx专业版任务计划功能详解

    Folx专业版的任务计划功能允许用户以时间表的方式,制定下载计划.按照预先设定的时间计划,Folx会在指定的时间段内,自动开启或停止下载任务. 另外,用户还可以设置自动关机功能.当计划下载任务停止时, ...

  6. MGR(MySQL Group Replication)部署测试

    1. 环境说明 192.168.11.131 mgr1 主节点 192.168.11.132 mgr2 从节点 192.168.11.133 mgr3 从节点 2. 在mgr1.mgr2.mgr3上安 ...

  7. nginx学习sub_filter模块

    用户替换html中的字符 location / { root /opt/app/code/; random_index on; index index.html index.htm; sub_filt ...

  8. Codeforces Round #656 (Div. 3) 题解

    A. Three Pairwise Maximums #构造 题目链接 题意 给定三个正整数\(x,y,z\),要求找出正整数\(a,b,c\),满足\(x=max(a,b), y=max(a,c), ...

  9. jdk1.8hashmap常见的面试问题

    1.HashMap原理,内部数据结构? 底层使用哈希表(数组加链表)来存储,链表过长会将链表转成红黑树,以实现在O(logn)时间复杂度内查找 2.讲一下HashMap中的put方法过程? 对key求 ...

  10. GoLang 自学系列(二)—— defer

    defer 关键字 首先来看官网的定义: A "defer" statement invokes a function whose execution is deferred to ...