GitLab安装及使用

什么是GitLab版本管理

GitLab 是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。Gitlab 就是以网站的形式将 Git 服务端可视化。

GitLab的安装

安装并配置必要的依赖关系

在 CentOS 系统上(GitLab目前不支持Windows),下面的命令将会打开系统防火墙 HTTP 和 SSH 的访问。

1
2
3
4
5
6
7
8
sudo yum install curl policycoreutils openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld

添加 GitLab 镜像源并安装

1
2
curl -sS http://packages.gitlab.com.cn/install/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce

gitlab-ce –社区版

gitlab-ee –企业版

一般使用社区版基本差不多了,当然如果公司有需要则购买企业版的功能比较丰富。

配置并启动 GitLab

1
sudo gitlab-ctl reconfigure

通过域名可以访问

第一次访问 GitLab,系统会重定向 url 到重置密码的页面,你需要输入初始化管理员账号的密码。 设置完成后,系统会重定向到登录界面,你就可以使用刚才输入的密码登录系统了。

http://ip:端口/

用户名:root

修改 GitLab 配置

官方安装方式下,配置文件是/etc/gitlab/gitlab.rb

1
2
3
4
5
6
- gitlab nginx 端口监听修改
nginx['listen_port'] = 端口号
- gitlab 的域名
external_url '域名'
修改完毕后重置下gitlab:
gitlab-ctl reconfigure

GitLab常用命令

1
2
3
4
5
6
7
8
sudo gitlab-ctl start    # 启动所有 gitlab 组件;
sudo gitlab-ctl stop # 停止所有 gitlab 组件;
sudo gitlab-ctl restart # 重启所有 gitlab 组件;
sudo gitlab-ctl status # 查看服务状态;
sudo gitlab-ctl reconfigure # 重新应用gitlab的配置;
sudo vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
sudo gitlab-ctl tail # 查看日志;

GitLab使用

创建工程

Visibility Level (可见等级)

Private:只有被赋予权限的用户可见

Internal:登录用户可以下载

Public:所有人可以下载

添加SSH

在git客户端中输入

1
2
3
4
5
6
--配置使用Git仓库的人员姓名
git config --global user.name "xxx"
--配置使用Git仓库的人员email,填写自己的公司邮箱
git config --global user.email "xxx@qq.com"
--生成ssh,前面两步是可选
ssh-keygen

找到id_rsa.pub文件

将id_rsa.pub文件内容复制到SSH Keys添加key

使用git clone git@192.168.1.57:root/test.git报错:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Cloning into 'test'...
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:0yu4Ik0/+Gb43OJkPEjw9rPxeUH3sf1qj84/THPIm8g.
Please contact your system administrator.
Add correct host key in /c/Users/Administrator/.ssh/known_hosts to get rid of th is message.
Offending ECDSA key in /c/Users/Administrator/.ssh/known_hosts:10
ECDSA host key for 192.168.1.57 has changed and you have requested strict checki ng.
Host key verification failed.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

解决方案:

删除~/.ssh/known_hosts整个文件

下载Git客户端

https://git-scm.com/downloads

1
2
--克隆项目到本地
git clone git@ip:端口/root/test

在test项目下新建一个test.txt文件

1
2
3
4
5
6
--将test.txt加入到暂存区
git add .
--提交到本地版本库
git commit -m ‘add text.txt’
--提交到远程版本库
git push origin

然后刷新下gitlab网页,则查看到test.txt文件已提交到gitlab私库中。

git@gitlab.example.com:root/myfams.git地址改成服务器ip地址

发现SSH地址:git@gitlab.example.com:root/myfams.git

1
2
3
vim /etc/gitlab/gitlab.rb
--修改external_url改成部署机器的域名或者IP地址
external_url 'http://172.28.255.xx'

权限说明

Guest(匿名用户) - 创建项目、写留言薄

Reporter(报告人)- 创建项目、写留言薄、拉项目、下载项目、创建代码片段

Developer(开发者)- 创建项目、写留言薄、拉项目、下载项目、创建代码

片段、创建合并请求、创建新分支、推送不受保护的分支、移除不受保护的分

支 、创建标签、编写wiki

Master(管理者)- 创建项目、写留言薄、拉项目、下载项目、创建代码片

段、创建合并请求、创建新分支、推送不受保护的分支、移除不受保护的分

支 、创建标签、编写wiki、增加团队成员、推送受保护的分支、移除受保护

的分支、编辑项目、添加部署密钥、配置项目钩子

Owner(所有者)- 创建项目、写留言薄、拉项目、下载项目、创建代码片

段、创建合并请求、创建新分支、推送不受保护的分支、移除不受保护的分

支 、创建标签、编写wiki、增加团队成员、推送受保护的分支、移除受保护

的分支、编辑项目、添加部署密钥、配置项目钩子、开关公有模式、将项目转

移到另一个名称空间、删除项目

参考文献:

https://blog.csdn.net/Adelly/article/details/79099772#_Toc480656593

https://www.cnblogs.com/weifeng1463/p/7714492.html

0%