一、gitlab介绍

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。GitLab由乌克兰程序员DmitriyZaporozhets和ValerySizov开发,它由Ruby语言写成。后来,部分代码用Go语言重写,现今在国内外大中型互联网公司广泛使用。
git、gitlab、GitHub的区别如下:
git 是一种基于命令的版本控制系统,全命令操作,没有可视化界面。
gitlab 是一个基于git实现的在线代码仓库软件,提供web可视化管理界面,通常用于企业团队内部协作开发。
github 是一个基于git实现的在线代码托管仓库,亦提供可视化管理界面,同时提供免费账户和付费账户,提供开放和私有的仓库,大部分的开源项目都选择github作为代码托管仓库。

二、部署环境

1、关闭 selinux

sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
sed -i 's/SELINUXTYPE=targeted/#&/' /etc/selinux/config
setenforce 0

2、设置时区
timedatectl set-timezone Asia/Shanghai
3、安装需要用到的工具及软件
yum -y install vim bash-completion wget curl policycoreutils-python

三、安装部署gitlab

1、配置防火墙允许http服务

firewall-cmd --permanent --add-service=http
systemctl reload firewalld

2、安装postfix

yum -y install postfix
systemctl enable postfix
systemctl start postfix

3、添加GitLab包存储库并安装gitlab
注:我这里安装的是gitlab-ee(企业版),如果要安装gitlab-ce(社区版),请将下面命令中gitlab-ee替换为gitlab-ce。

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | bash
EXTERNAL_URL="http://192.168.2.220" yum install -y gitlab-ee

4、将存储仓库修改为非系统盘
vim /etc/gitlab/gitlab.rb

git_data_dirs({
  "default" => {
    "path" => "/data/git-data"
   }
})

5、重启gitlab

gitlab-ctl stop
gitlab-ctl reconfigure
gitlab-ctl start

6、登陆web页面配置gitlab
浏览器访问http://192.168.2.220 出现如下页面,设置root(管理员)用户密码
Centos 7.6安装部署gitlab_第1张图片
然后使用root用户登陆
Centos 7.6安装部署gitlab_第2张图片

四、gitlab使用

1、Gitlab账号注册
浏览器访问 http://192.168.2.220 会出现如下页面,点击Register
Centos 7.6安装部署gitlab_第3张图片
2、创建group
 在创建project之前,可先创建一个组
Centos 7.6安装部署gitlab_第4张图片
Centos 7.6安装部署gitlab_第5张图片
3、创建project
在上面创建的组下新建一个project
Centos 7.6安装部署gitlab_第6张图片
Centos 7.6安装部署gitlab_第7张图片
Centos 7.6安装部署gitlab_第8张图片
Clone下拉框里的两个地址,就是git的远程仓库地址。
4、往组里添加用户
注:添加用户到组里只能使用root用户操作
Centos 7.6安装部署gitlab_第9张图片
Centos 7.6安装部署gitlab_第10张图片
5、设置project的保护分支
使用之前创建ceshi这个project的用户登陆
Centos 7.6安装部署gitlab_第11张图片
Centos 7.6安装部署gitlab_第12张图片
Centos 7.6安装部署gitlab_第13张图片
选择Developers+Maintainers,即开发者和维护者有合并和推送的权限。

五、安装git客户端

1、下载git客户端工具
需要下载下图中的三个软件
Centos 7.6安装部署gitlab_第14张图片
2、安装Git工具
双击Git-2.22.0-64-bit.exe,如果出现“你要允许此应用对你的设备进行更改吗?”,请点击“是”。然后一路Next(下一步),直到安装完成即可。
3、 安装git客户端
双击TortoiseGit-2.8.0.0-64bit.msi,一路点击Next(下一步)。
出现下图页面时,可先操作1.1.4步骤,安装语言包,然后这里选择中文(简体)。
也可以选择English(英文),等安装完后再选择语言。
Centos 7.6安装部署gitlab_第15张图片
出现下图界面时,可以点击Check now,检查git.exe路径是否正确,出现git版本号表示git.exe路径正确。
git.exe路径为C:\Program Files\Git\bin,如果默认没有显示git.exe的路径,可以手动填上去,然后再Check now检查一下。
Centos 7.6安装部署gitlab_第16张图片
然后输入Full name和邮箱
Centos 7.6安装部署gitlab_第17张图片
Centos 7.6安装部署gitlab_第18张图片
点击“完成”,git客户端工具安装完成。
4、安装git语言包
双击TortoiseGit-LanguagePack-2.8.0.0-64bit-zh_CN.msi,安装中文语言包。
如果出现“你要允许此应用对你的设备进行更改吗?”,请点击“是”。
点击”下一步“,安装完成。
5、将git客户端语言修改为中文
任意目录下,在空白的地方右击,选择TortoiseGit→Settings
Centos 7.6安装部署gitlab_第19张图片

六、git客户端使用

Git使用有两种方式,http和ssh。
1、http方式
URL地址:http://192.168.2.220/ceshi/ceshi.git
在本地创建一个空文件夹,然后右击选择“Git 克隆...”
Centos 7.6安装部署gitlab_第20张图片
Centos 7.6安装部署gitlab_第21张图片
第一次克隆(clone)时需要输入gitlab的用户名和密码
Centos 7.6安装部署gitlab_第22张图片
此时可自己新建一个文件进行测试,流程为拉取→添加→提交→Push
Centos 7.6安装部署gitlab_第23张图片
Centos 7.6安装部署gitlab_第24张图片
Centos 7.6安装部署gitlab_第25张图片
Centos 7.6安装部署gitlab_第26张图片
2、ssh方式
在任意目录下右击空白地方,选择“Git Bash Here”,打开git命令行窗口
初始化git全局配置

git config --global user.name "Full name"
git config --global user.email "你的邮箱"

Centos 7.6安装部署gitlab_第27张图片
创建SSH密钥对

ssh-keygen -t ed25519 -C "你的邮箱"

3个:号的地方直接回车,不要输入任何内容
Centos 7.6安装部署gitlab_第28张图片
然后将git命令行窗口关掉
密钥存放在你的用户目录下的.ssh目录下,比如:C:\Users\xuad.ssh
Centos 7.6安装部署gitlab_第29张图片
打开公钥文件,将内容全部复制到gitlab上你的ssh keys里保存。
Centos 7.6安装部署gitlab_第30张图片
浏览器访问http://192.168.2.220 登陆gitlab,右上角用户下拉菜单选择“Settings”,然后点击“SSH Keys”
Centos 7.6安装部署gitlab_第31张图片
在本地创建一个空文件夹,然后右击选择“Git 克隆...”
Centos 7.6安装部署gitlab_第32张图片
Centos 7.6安装部署gitlab_第33张图片
其他的操作跟http的方式都一样。