一、GIT服务器搭建方式
上一篇文章说过GIT是一个分布式版本管理系统,既然是分布式那么必然涉及远程通信,那么GIT是采用什么协议进行远程通信的呢?
GIT支持的四种通信协议:
- Local(本地协议)
- ssh
- HTTP(Dumb,Smart)
- git
-
Local(本地协议)
基于本地文件系统或共享(NFS)文件系统进行访问,也就是在团队里的一台电脑上建立GIT仓库,开启共享权限,团队成员通过访问该电脑操作GIT仓库
**优点:**简单,直接使用了现有的文件权限和网络访问权限,小团队小项目建立一个这样的版本管理系统是非常轻松的一件事
**缺点:**这种协议缺陷就是本身共享文件系统的局限,只能在局域网,而且速度很慢
**适用场景:**小团队,小项目临时搭建版本服务
演示本地协议使用方式:
在本地F盘创建git裸项目
git --bare init demo.git
从本地E盘克隆本地项目
git clone /f/demo.git
还可以基于file协议克隆本地项目
git clone file:///f/demo.git
如果在开头明确指定file://,那么GIT的行为会略有不同。如果仅是指定路径,GIT会尝试使用硬链接或直接复制所需要的文件。如果指定file://,GIT会触发平时用于网络传输资料的过程,传输过来的是打包好的文件,更节约硬盘空间
-
ssh
GIT支持利用ssh协议进行通信,这是绝大部分linux系统都支持的,所以利用该协议架构GIT版本服务是非常方便的
**优点:**首先SSH架构相对简单、其次通过SSH访问是安全的、另外SSH协议很高效,在传输前也会尽量压缩数据
**缺点:**权限体系不灵活,必须提供操作系统的账户密码,哪怕是只需要读取版本
演示基于ssh协议
我们必须先把git服务安装到linux系统上,然后才能使用ssh协议跟git服务进行通信