一、VIP课程:互联网工程专题 02-Git服务搭建与版本分支管理

让人想犯罪 __ 提交于 2020-02-16 17:11:27

第二课:搭建企业私有Git服务.docx 

课程概要:

  1. GIT远程通信协议详解
  2. 基于gogs 搭建WEB管理服务

一、GIT服务器搭建方式

上一节课我们讲过GIT是一个分布式版本管理系统,既然是分布那么必定会涉及远程通信,那么GIT是采用什么协议进行远程通信的呢?

git支持的四种通信协议:

  1. Local(本地协议)
  2. ssh
  3. http(Dumb、Smart)
  4. git

1、Local(本地协议)

基于本地文件系统或共享(NFS)文件系统进行访问,

优点:简单,直接使用了现有的文件权限和网络访问权限。

缺点:这种协议缺陷就是本身共享文件系统的局限,只能在局域网。

适应场景:小项目临时搭建版本服务。

l  演示本地协议使用方式:

# 从本地 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 会尝试直接复制所有需要的文件。 如果指定 file://,Git 会触发平时用于网路传输资料的进程,传输过来的是gc处理后打包好的文件,更节约硬盘空间。

 

git init --bare luban.git

 

git add -A;git commit -am'1 commit';git push

 

2、ssh 协议

git 支持支持利用ssh 协议进行通信,这是绝大部分linux、uninx系统都支持的,所以利用该协议架设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

 

# 2.下载并解压源码

$ 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

 

#如果成功显示版本号表示添加成功

git --version

git version 2.3.0

 

#创建一个祼项目

git --bare init luban.git

 

#本地基于远程克隆仓库

git clone root@192.168.0.147:/data/git-repository/luban.git

cd luban/

#添加文件

echo "this is luban" >> README.MF

# 本地添加、提交、并推送至远程

git add -A; git commit -am 'first commit'; git push;

 

可能的错误:

git-upload-pack: command not found

原因是 ssh 协议下只能访问/usr/bin 下的目录,解决办法如下

ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack

ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack

 

===============================

参考资料:

Gogs搭建教程-极易搭建的自助 Git 服务

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!