现在开发过程中,很多的实现某一些功能的工具,都是类似的服务器-客户端结构,即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. xpth定位元素

  2. Linux(CentOS6.8)配置Docker

    Centos6.8 1.查看自己的内核 [1].uname [root@host79 ~]# uname -r 2.6.32-642.el6.x86_64 [2].查看CentOS版本信息 CentO ...

  3. SpringCloud Alibaba+New搭建企业级开发框架(三):创建New工程

    1.创建父工程:File > New > Project...,选择Maven,Create from archetype不要勾选,点击Next进入下一步,填写工程信息.   image. ...

  4. 【进阶之路】Redis基础知识两篇就满足(二)

    导言 大家好,我是南橘,一名练习时常两年半的java练习生,这是我在博客园的第二篇文章,当然,都是要从别处搬运过来的,不过以后新的文章也会在博客园同步发布,希望大家能多多支持^_^ 这篇文章的出现,首 ...

  5. [C/C++] 结构体内存对齐:alignas alignof pack

    简述: alignas(x):指定结构体内某个成员的对齐字节数,指定的对齐字节数不能小于它原本的字节数,且为2^n; #pragma pack(x):指定结构体的对齐方式,只能缩小结构体的对齐数,且为 ...

  6. Web安全常见漏洞修复建议

    转载地址:https://security.pingan.com/blog/17.html SQL注入 在服务器端要对所有的输入数据验证有效性. 在处理输入之前,验证所有客户端提供的数据,包括所有的参 ...

  7. JS逆向课程笔记

    扩展知识 Sources-js代码格式化

  8. 攻防世界app2 frida获取密钥

    环境准备 安装mumu模拟器 pip安装frida,这里到最后一步setup需要很长时间. 在frida github下载对应服务端. apk下载:https://adworld.xctf.org.c ...

  9. Java线程的死锁和活锁

    目录 1.概览 2.死锁 2.1.什么是死锁 2.2 死锁举例 2.3 避免死锁 3.活锁 3.1 什么是活锁 3.2 活锁举例 3.3 避免活锁 1.概览 当多线程帮助我们提高应用性能的同时,它同时 ...

  10. 通过weakHashMap避免过期引用导致的内存泄漏

    问题由来 数组为基础实现的集合在退出元素时,并不会将引用指向空指针,过期引用存在对象便不会被回收. 措施 1.WeakHashMap当其中的key没有再被外部引用时,就会被回收.ThreadLocal ...