一、GIT服务器搭建方式
第一篇文章讲过 GIT 是一个分布式版本管理系统,既然是分布那么必定会涉及远程通信,那么GIT是采用什么协议进行远程通信的呢?
Git 支持的四种通信协议:
- Local(本地协议)
- ssh
- http(Dumb、Smart)
- git
1. Local(本地协议)
基于本地文件系统或共享(NFS)文件系统进行访问。
优点:
简单,直接使用了现有的文件权限和网络访问权限,小团队小项目建立一个这样的版本管理系统是非常轻松的一件事。
缺点:
这种协议缺陷就是本身共享文件系统的局限,只能在局域网,而且速度也慢。适应场景:小团队,小项目临时搭建版本服务。
演示本地协议使用方式:
从本地 f/git/atals 目录克隆项目
git clone /f/git/atals/
即使是 bare仓库也可以正常下载
git clone /f/git/atals.git
基于file 协议克隆本地项目
git clone file:///f/git/atals/
如果在 URL 开头明确的指定 file://,那么 Git 的行为会略有不同。 如果仅是指定路径,Git 会尝试使用硬链接(hard link)或直接复制所需要的文件。 如果指定 file://,Git 会触发平时用于网路传输资料的进程,传输过来的是打包好的文件,更节约硬盘空间。
2. ssh 协议
git 支持支持利用 ssh 协议进行通信,这是绝大部分 linux、unix 系统都支持的,所以利用该协议架设 GIT 版本服务是非常方便的
优点:
**
首先SSH 架设相对简单、其次通过 SSH 访问是安全的、另外SSH 协议很高效,在传输前也会尽量压缩数据。
缺点:
权限体系不灵活,必须提供操作系统的帐户密码,哪怕是只需要读取版本。
适应场景:
小团队、小项目、临时项目
ssh协议搭建
这里我们把 git 服务必须先安装到 linux 系统上,然后才能使用 ssh 协议跟 git 服务进行通信。
linux 安装git服务
1.安装依赖环境
**
yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker<br />**2.下载并解压源码**<br />**
```shell
$ wget https://github.com/git/git/archive/v2.3.0.zip
# 备用下载链接: https://pan.baidu.com/s/1czwEz8 密码: y3hn
$ unzip v2.3.0.zip
$ cd git-2.3.0
3 编译 安装(如果没有权限就加上sudo)
**
make prefix=/usr/local/git all
make prefix=/usr/local/git install
4 添加环境变量
**
vim /etc/profile
export PATH=/usr/local/git/bin:$PATH
source /etc/profile
5.如果成功显示版本号表示添加成功
git --version
git version 2.3.0
创建一个祼项目
git --bare init liuscoding.git
本地基于远程克隆仓库