Centos7 Gitlab 教程 全网第一全

1、前言

    本文介绍gitlab的完整安装步骤。原本团队使用的版本管理工具是所有java开发都耳熟能详的svn,一直觉得够用了,也没想过去换成比较火的git,但是随着朋友、同行的热捧最终决定使用git来作为团队的版本管理工具。

    安装前觉得git、svn应该是差不多的东西,但是实际看过一些帖子之后发现安装、使用上差别还是很大的,而且在安装中我也出了不少问题,网上的帖子比较少,所以决定详细写一篇自己的,留作笔记,也希望这段笔记可以帮助到跟我一样正在接触git的开发朋友们。

2、git 介绍

    同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码。
    到 2005 年的时候,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了免费使用 BitKeeper 的权力。这就迫使 Linux 开源社区(特别是 Linux的缔造者 Linus Torvalds )不得不吸取教训,只有开发一套属于自己的版本控制系统才不至于重蹈覆辙。他们对新的系统订了若干目标:

序号目标
1速度
2简单的设计
3对非线性开发模式的强力支持(允许上千个并行开发的分支)
4完全分布式
5有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

2、svn 与 git 对比

2.1、svn

    svn版本管理服务器:是集中式式版本管理系统,何为集中就是svn服务器,与集中相呼应的就是终端也就是svn客户端或者白话说就是每个开发的自己的笔记本、台式机。
    svn的中央型模式决定了他的使用流程

步骤svn工作内容
第一步创建空项目提交到svn
第二步所有开发人员checkout项目到本地开发机器中
第三步开发人员开始开发,每次开发前先更新代码,从中央服务器保证本机代码最新,然后再提交自己编写的代码
总结代码集中管理,本地没有代码仓库,通过更新、提交两个步骤,将代码统一存储在中央服务器仓库中

下图展示了 Svn 的工作流程:
在这里插入图片描述

2.2、git

    分布式版本管理软件,每个参与开发的人的电脑上都有一个完整的仓库,有着非常强大的分支管理功能,常用于代码托管

步骤git工作内容
1从远程仓库(git服务器)中克隆 Git 资源作为本地仓库。
2从本地仓库(本地仓库)中checkout代码然后进行代码修改
3在提交前先将代码提交到暂存区。
4提交修改。提交到本地仓库。本地仓库中保存修改的各个历史版本。
5在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库。

下图展示了 Git 的工作流程:

在这里插入图片描述
在这里插入图片描述

3、git、gitlab、github 区别解释

git : 版本控制系统,是一种命令、是一种工具,是一个概念
github : 是基本git这个概念实现的在线代码仓库,是一个网站界面,互联网开发
gitlab : 是一个给予git实现的在线代码软件,可以自己搭建一个gitlab,模拟类似github一样的系统,一般用于搭建私服git服务器使用。  
标题概念
gitgit是一个概念
githubgithub在线代码仓库,一个做好的网站
gitlabgitlab开源软件,可以搭建自己的私有化git服务器,给自己的开发团队使用

4、部署环境介绍

系统:centos7
gitlab:gitlab-11.11.8版本
gitlab下载地址:gitlab下载地址

5、安装前准备工作

安装gitlab需要若干相关依赖,我们先提前把所有相关依赖进行安装

5.1 安装vim编辑器

yum install vim -y

5.2 安装wget下载工具

yum -y install wget

5.3 ssh

安装ssh ⬇

sudo yum install -y curl policycoreutils-pythonopenssh-server

设置SSH服务开机自启动 ⬇

sudo systemctl enable sshd

启动SSH服务 ⬇

sudo systemctl start sshd

5.4 防火墙相关

安装防火墙 ⬇

yum install firewalld systemd -y

开启防火墙 ⬇

sudo firewall-cmd --permanent --add-service=http

添加端口进入防火墙(这个端口需要主意,就是以后gitlab的连接端口)⬇

#本帖子中使用的端口是4433
firewall-cmd --permanent --add-port=4433/tcp

重启防火墙后,开发的端口才有效 ⬇

systemctl reload firewalld

检查防火墙中端口是否开启 ⬇

firewall-cmd --query-port=4433/tcp

5.5 postfix

安装postfix ⬇

yum install -y postfix

修改postfix配置 ⬇

#编辑postfix配置文件
vim /etc/postfix/main.cf 
#修改如下内容
inet_protocols = ipv4

启动postfix ⬇

systemctl enable postfix 
systemctl start postfix

6、正式安装

6.1 下载GitLab镜像

使用国内镜像网站,下载速度快,本例子中使用的是清华大学开源软件镜像站。
本例中GitLab版本:gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm

6.2 安装GitLab

rpm gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm

在这里插入图片描述
提示如上图片,代表GitLab初步安装成功,可以开始进一步配置。⬆

6.3 修改GitLab的配置文件

    GitLab 502问题,我看网友帖子、包括我自己都有这个问题,所以特意写一下,出现502问题最主要的原因就是端口冲突,GitLab默认是80端口,但是80端口有可能已经被其他程序占用,所有需要找一个未必占用的端口进行修改,我本例使用的是4433端口

vim  /etc/gitlab/gitlab.rb

external_url 后跟的网址就是GitLab的登陆网址,网址中端口写的多少,GitLab端口就是多少,这里需要注意!!!
在这里插入图片描述

6.4 初始化GitLab

每次修改完GitLab配置之后,都需要执行如下命令,配置才会生效.
该命令等待时间很长,控制台一直输出GitLab日志,这个时候不要着急,我自己本机是使用Vm中虚拟机搭建环境,60G硬盘,1G内存,1核处理器,共等待差不多3-5分钟左右

gitlab-ctl reconfigure

6.5 启动GitLab

gitlab-ctl   restart

在这里插入图片描述
在浏览器中打开网址,如出现上图那么说明部署完成 ⬆

6.6 关闭GitLab

gitlab-ctl stop

版权声明:本文为jrgdspuwij原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。