现在开发过程中,很多的实现某一些功能的工具,都是类似的服务器-客户端结构,即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. 使用electron+vue开发一个跨平台todolist(便签)桌面应用

    # 1 最近一直在使用electron开发桌面应用,对于一个web开发者来说,html+javascript+css的开发体验让我非常舒服.之前我一直简单的以为electron只是张网页加个壳,和那些 ...

  2. python编码规范以及推导式的编写

    一.python 的编码规范

  3. cakephp中sql查询大于

    $list = $this->Capital->find('all', array('conditions'=>array('amount >'=>0)));

  4. How to realize one's ambition

    Work Overtime Can it work? To some extent, it parhaps works very well. What if you do little job and ...

  5. 循序渐进VUE+Element 前端应用开发(29)--- 高级查询条件的界面设计

    在系统模块中的业务列表展示里面,一般我们都会在列表中放置一些查询条件,如果是表字段不多,大多数情况下,放置的条件有十个八个就可以了,如果是字段很多,而这些条件信息也很关键的时候,就可能放置很多条件,但 ...

  6. Win10定期执行python程序

    一:windows10自带的计划程序 第一步:在 计算器右击 --> 选择管理 进入如下界面: 第二步:选择 系统工具 -->  任务计划程序 ,点击右侧的  "创建基本任务&q ...

  7. 关于UILabel标签控件的使用小节

    前段时间一直想停下来,总结一下近期在开发中遇到的一些问题顺便分享一下解决问题的思路和方法,无奈人生就像蒲公英,看似自由却身不由己.太多的时间和精力被占用在新项目的开发和之前项目的维护中,总之一句话外包 ...

  8. 3. git命令行操作之远程库操作

    3.1 基本操作 注册GitHub账号 在本地创建一个本地库并初始化 登录到gitHub创建一个远程库 注意:windows的凭据管理器中会保存github登录信息.如果要切换登录者,先删除相应凭据 ...

  9. 【不尽如人意的redisTemplete封装】

    线下项目里对spring redisTemplete进行了简单的封装,但是项目里关于其序列化的配置真的有点一言难尽: 可以看到这里用了JdkSerializationRedisSerializer去对 ...

  10. hibernate一对多,细节讲解

    1.一对多 1).首先创建两个实体类studeninfo.java跟studentxxb.java 1)studentinfo.java表如图: package model; import java. ...