Gitlab的使用教程

Gitlab的基本介绍:

Gitlab是利用Ruby on Rails 一个开源的版本管理系统,实现一个自托管的git项目仓库,可通过web界面进行访问公开或私有的项目。

与GitHub类似,Gitlab能够浏览源代码、管理缺陷和注释、可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序Wall进行交流。

它还提供了一个代码片段收集功能可以轻松地实现代码复用,便于日后有需要的时候进行查找。

Git家族成员:

1)Git是一个版本控制系统,是一个命令,是一种工具;

2)Gitlib:是用于实现Git功能的开发库;

3)GitHub:是一个基于Git实现的在线代码托管仓库,包括一个网站界面,向互联网开放。

4)Gitlab:是一个基于Git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于GitHub一样的系统,一般用于企业、学校等内部网络搭建git私服。

Gitlab的服务构成:

1)Nginx:静态web服务器;

2)gitlab-shell:用于处理git命令和修改authorized keys列表;

3)gitlab-workhorse:轻量级的反向代理服务器;

4)logratate:日志文件管理工具;

5)postgresql:数据库;

6)redis:缓存数据库;

7)sidekiq:用于在后台执行队列任务(异步执行);

8)unicorn:An HTTP Server for  Rack applications,Gitlab Rails应用是托管在这个服务器上面的。

Gitlab工作流程:

Gitlab的使用教程_第1张图片

Gitlab shell:

Gitlab shell有两个作用:为Gitlab处理git命令、修改authorized keys列表。

当通过ssh访问Gitlab Server的时候,Gitlab Shell会:

1)限制执行预定义好的Git命令:git push git pull git annex

2)调用Gitlab Rail API 检查权限;

3)执行pre-receive钩子(在Gitlab企业版中叫做Git钩子)

4)执行你请求的动作,处理Gitlab的post-receive动作

5)处理自定义的post-receive动作。

当通过https访问Gitlab Server的时候,工作流程取决于你是从Git仓库拉取pull代码还是向Git仓库推送push代码。

如果你是从Git仓库拉取pull代码,Gitlab Rails应用会全权处理用户鉴权和执行Git命令的工作。

如果你是向Git仓库推送(push)代码,GitLab Rails应用既不会进行用户鉴权也不会执行Git命令,它会把以下工作交由GitLab Shell进行处理:

调用GitLab Rails API 检查权限
执行pre-receive钩子(在GitLab企业版中叫做Git钩子)
执行你请求的动作
处理GitLab的post-receive动作
处理自定义的post-receive动作

GitLab Workhorse

GitLab Workhorse是一个敏捷的反向代理。它会处理一些大的HTTP请求,比如文件上传、文件下载、Git push/pull和Git包下载。其它请求会反向代理到GitLab Rails应用,即反向代理给后端的unicorn。

Gitlab安装:

请参考《安装Gitlab-ce指定版本》的博文。

Gitlab的常用命令:

sudo gitlab-ctl start            # 启动所有gitlab组件
 
sudo gitlab-ctl stop             # 停止所有gitlab组件

sudo gitlab-ctl restart          # 重启所有组件

sudo gitlab-ctl status           # 检查服务状态

sudo gitlab-ctl reconfigure      # 重启服务;

sudo vim /etc/gitlab/gitlab.rb   # 修改默认配置文件

gitlab-rake gitlab:check SANITIZE=true --trace   # 检查gitlab

sudo gitlab-ctl tail             # 查看日志


Gitlab使用:

登录Gitlab:

1、在浏览器中输入部署服务器的IP地址(192.168.17.150),即可访问到Gitlab的界面。

Gitlab的使用教程_第2张图片

修改密码的事情,可以百度相关的文章。

创建项目:

在另外一个虚拟机(Linux系统)中(192.168.17.201)创建项目:

1)安装git工具:

yum install -y git

Gitlab的使用教程_第3张图片

 2)获取git版本:

git --version

3)生成密钥文件:使用ssh-keygen 生成密钥文件**.ssh/id_rsa.pub**。

Gitlab的使用教程_第4张图片

 Gitlab的使用教程_第5张图片

 生成公私钥文件。

4)在Gitlab的主页中创建一个项目:

Gitlab的使用教程_第6张图片

Gitlab的使用教程_第7张图片

 Gitlab的使用教程_第8张图片

Gitlab的使用教程_第9张图片

项目创建成功。

5)添加ssh key导入步骤3中生成的密钥文件内容:

Gitlab的使用教程_第10张图片

Gitlab的使用教程_第11张图片

ssh key添加完成。

项目地址:该地址在进行clone操作的时候用的到:

Gitlab的使用教程_第12张图片

简单配置:

1)配置使用git仓库的人员姓名:

git config --global user.name "changchunhua"
git config --global user.email "[email protected]"

git clone http://192.168.17.150/root/test.git

直接在根目录下克隆该项目。

Gitlab的使用教程_第13张图片

2)然后将test.sh添加到索引中:

Gitlab的使用教程_第14张图片

Gitlab的使用教程_第15张图片

 Gitlab的使用教程_第16张图片

可以看到test.sh文件已经上传到gitlab test项目中。

操作详细记录:

1)登录

Gitlab的使用教程_第17张图片

输入自己的账号密码,即可登录。

2) 修改密码:

Gitlab的使用教程_第18张图片

修改好root密码,然后登录成功。

3) 项目管理:

根据需要新建项目、新建组合和新建用户。

Gitlab的使用教程_第19张图片

新建项目: 创建的时候可以选择在自己用户下创建或者在某个群组里创建。

项目名称:

项目描述:

可见性:库类别:

私有库:只有被赋予权限的用户可见;

内部库:登录用户可以下载;

公开库:所有人可以下载;

提示通过SSH方式拉取推送项目代码必须要导入SSH key,这个稍后再介绍。

项目地址有HTTP和SSH两种方式-------可发送给开发人员下载和初始化项目

4)用户管理:

先创建一个组:

Gitlab的使用教程_第20张图片

Gitlab的使用教程_第21张图片

 Gitlab的使用教程_第22张图片

testgroup创建成功。

创建用户user01:

 Gitlab的使用教程_第23张图片

Gitlab的使用教程_第24张图片

user01用户已经创建成功。

在testgroup组中添加用户user01:

Gitlab的使用教程_第25张图片

 可见已经添加成功。

在testgroup的Members,我们可以编辑用户。

Gitlab的使用教程_第26张图片

修改成员的权限

权限说明:

Guest:可以创建issue,发表评论,不能读写版本库

Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限

Developer:可以克隆代码,开发,提交,push,普通开发可以授予该权限

Maintainer:可以创建项目,添加tag,保护分支,添加项目成员,编辑项目,核心开发可以授予该权限

Owner:可以设置值项目访问权限,Visibility Level,删除项目,迁移项目,管理组成员,开发组组长可以授予该权限

从组中添加项目:
Gitlab的使用教程_第27张图片

已经选择了testgroup这个组。

Gitlab的使用教程_第28张图片

你可能感兴趣的:(Gitlab,Git,gitlab)