git-服务器搭建-协议概念
现在开发过程中,很多的实现某一些功能的工具,都是类似的服务器-客户端结构,即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-服务器搭建-协议概念的更多相关文章
- 【转】Windows平台下Git服务器搭建
Windows平台下Git服务器搭建 Posted on 2015-05-18 21:29 阿祥当码农 阅读(7637) 评论(0) 编辑 收藏 该文章转自:http://www.codeceo.co ...
- Git系列(1) Windows下Git服务器搭建
作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 我们这里只需要两个软件git和ssh, ...
- Windows下Git服务器搭建[转]
Windows下Git服务器搭建 作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 ...
- Windows平台下Git服务器搭建--------gitblit
Windows(server)平台下Git服务器搭建 第一步:下载Java,安装,配置环境变量. 第二步:下载Gitblit.下载地址:http://www.gitblit.com/ 第三步:解压缩下 ...
- 基于阿里云服务器的git服务器搭建
使用阿里云Ubuntu 12.0.4 64位操作系统做git服务器. 首先git服务器有两种访问方式可以选择:http方式和ssh的方式,http方式更容易使用. 1.http方式的git服务器搭建以 ...
- CentOS 6.5下Git服务器搭建
1 . Git服务器搭建 1. 环境部署 系统环境:服务器端:CentOS 6.5 ,ip:192.168.56.1 客户端:CentOS 6.5 ,ip:192.168.56.101 软件版本:服务 ...
- ECS之Git服务器搭建
最简教程 ### . 安装Git 安装Git服务,命令如下: ```Shell $ yum install curl-devel expat-devel gettext-devel openssl-d ...
- git服务器搭建全程
为了后续安装能正常进行,我们先来安装一些相关依赖库和编译工具 [root@VM_95_113_centos ~]# yum install curl-devel expat-devel gettext ...
- 使用gitolite进行git服务器搭建
使用gitolite进行git服务器搭建 https://blog.csdn.net/pan0755/article/details/78460941 使用gitolite搭建,然后需要有个客户端进行 ...
- Windows下基于http的git服务器搭建-gitstack
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Windows下基于http的git服务器搭建-gitstack 本文地址:http: ...
随机推荐
- CSS浮动和清除浮动
1.浮动float div配合float浮动来做页面的布局,浮动最常用的地方就是用来做布局.只有一个标签设置了浮动float属性,就会变成块级标签. <!DOCTYPE html> < ...
- mysql之数据库备份
1.可视化工具Navicat for mysql进行操作数据库备份 (1)备份数据库 (2)将备份的数据库进行加载
- Nacos一致性算法
1. CAP原则 又称CAP定理,指的是在一个分布式系统中,一致性(Consistency).可用性(Availability).分区容错性(Partition tolerance).CAP 原则指的 ...
- mac 快键键图标对应
Mac 键盘快捷键 您可以按下某些组合键来实现通常需要鼠标.触控板或其他输入设备才能完成的操作. 要使用键盘快捷键,请按住一个或多个修饰键,然后按快捷键的最后一个键.例如,要使用 Command- ...
- CSRF和XSS的区别
XSS是啥? xss就是跨域脚本攻击 什么是跨域脚本攻击? 就是在正常的输入框中(如:用户名修改等)插入script恶意代码,从而在你遍历数据的时候加载该js文件, 获取你的cookie或sessio ...
- 运维自动化之1 - ansible 批量主机管理
2000 - 2016 年,维护的小型机.linux刚开始的2台增加到上千台,手工检查.日常版本升级需要管理太多设备,必须通过运维自动化实现 特别是版本升级,需要到同类机器部署代码.起停设备,必须在一 ...
- Camtasia绿幕素材的视频合成
随着科技和互联网的快速发展,让越来越多的人喜欢上了视频的各项制作,那么怎么让两个视频进行合成并一起播放呢?操作很简单,下面来讲解具体的操作步骤.小编选用的是Camtasia2019版本的视频编辑软件进 ...
- 利用css3实现照片列表展开小demo
效果如下: 其实实现起来很简单,就是控制 宽 高的变化,然后给他加上transition 过度而已.觉得代码没什么难的地方,就不打注释了,如果哪里有不懂的话,可以直接评论呢. 直接上源码 html代码 ...
- Redis 基础数据结构之一:string(字符串)
Redis 有 5 种基础数据结构,分别为:string (字符串).list (列表).set (集合).hash (哈希) 和 zset (有序集合),Redis存储数据的结构是键值对形式的. 首 ...
- try...catch的前世今生
1975年, John Goodenough发表论文,提出异常处理的建议: 一是明确声明命令可能抛出何种异常: 二是需要有将可能出错的操作括起来的语句结构. Communications of the ...