Gitlab仓库部署
- 一、Gitlab的概述
- 1、gitlab介绍
- 2、gitlab主要功能
- 3、gitlab和github的区别
- 二、部署环境
- 1、安装依赖环境
- 2、安装Postfix邮箱
- 3、Gitlab优势
- 4、Gitlab工作流程
- 三、Gitlab部署过程
- 1、Yum安装Gitlab
- 2、配置gitlab站点URL
- 3、启动并访问Gitlab
- 四、Gitlab具体操作
- 1、登录并修改密码
- 2、页面可将改为中文版
- 3、关闭账户自动注册
- 4、创建用户和组(管理员)
- 5、创建项目(管理员)
- 6、免密登录配置
一、Gitlab的概述
1、gitlab介绍
GitLab是一个基于Git的web应用程序,它用于代码版本控制、问题追踪、代码审查、持续集成和持续交付。GitLab是一个开源的、自托管的Git存储库管理系统,它允许你通过一个网页界面进行Git存储库的托管、代码评审、问题追踪、CI/CD等操作,是一个强大、灵活、开源的平台,能够满足企业和开发人员的多种需求。
2、gitlab主要功能
-
代码托管和版本控制:GitLab提供了一个易于使用的版本控制系统,能够管理和跟踪代码的变化。你可以通过上传代码文件或者设置项目为公共或私人来管理你的Git存储库。
-
问题追踪:GitLab提供了一个问题追踪系统,能够跟踪代码的缺陷、错误和特性请求等问题。
-
代码审查:GitLab允许你对代码文件进行评审。你可以在代码合并请求中添加注释、请求改进、建议等。
-
持续集成和持续交付:GitLab提供了强大的持续集成和持续交付功能。集成了CI/CD工具可周期性地构建、测试和部署应用程序。
-
访问权限管理:GitLab允许你设置存储库和项目的访问权限,以限制不同用户的访问。
除此之外,GitLab还提供了Wiki系统、代码片段管理、成员管理等功能,使项目协作更加容易和高效。
3、gitlab和github的区别
-
github是分布式在线代码托管仓库,个人版本可直接在线免费使用,企业版本收费且需要服务器安装。
-
gitlab是分布式在线代码仓库托管软件,分社区免费版本与企业收费版本,都需要服务器安装。
二、部署环境
官网有最新的安装方式:GitLab下载安装
1、安装依赖环境
[root@localhost data]#yum install -y policycoreutils-python.x86_64 openssh-server
2、安装Postfix邮箱
Postfix是一个邮件服务器,GitLab发送邮件需要用到。
Postfix邮箱
[root@localhost data]#yum install -y postfix
3、Gitlab优势
-
开源免费,社区免费版本适合中小型公司
-
差异化的版本管理,离线同步以及强大分支管理功能
-
便捷的GUI操作界面以及强大账户权限管理功能
-
集成度很高,能够集成绝大多数的开发工具
-
支持内置HA,保证在高并发下仍旧实现高可用性
4、Gitlab工作流程
(1)创建并克隆项目
(2)创建项目某Feature分支
(3)编写代码并提交至该分支
(4)推送该项目分支至远程Gitlab服务器
(5)进行代码检查并提交Master主分支合并申请
(6)项目领导审查代码并确认合并申请
三、Gitlab部署过程
1、Yum安装Gitlab
[root@localhost data]#curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash #添加GitLab社区版Package
[root@localhost data]#yum install -y gitlab-ce.x86_64 #安装gitlab社区版包
2、配置gitlab站点URL
GitLab默认的配置文件路径是/etc/gitlab/gitlab.rb
[root@localhost data]#vim /etc/gitlab/gitlab.rb默认的站点Url配置项是:
external_url 'http://gitlab.example.com'
3、启动并访问Gitlab
[root@localhost data]#gitlab-ctl reconfigure #重新配置并启动,如果启动时报错将服务器内存调整为大于4G就可以了gitlab-ctl start #启动
gitlab-ctl restart #重启
gitlab-ctl stop #停止
gitlab-ctl status #查看
[root@localhost data]#cat /etc/gitlab/initial_root_password #查看root用户的密码位置,24小时有效,过了24小时密码会自动删除
在浏览器访问即可
四、Gitlab具体操作
1、登录并修改密码
2、页面可将改为中文版
3、关闭账户自动注册
4、创建用户和组(管理员)
5、创建项目(管理员)
6、免密登录配置
[root@localhost data]#ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:RiUGE0iu0J0U8/02QpQMKHW93Tdwc6/sWl2ECpvJOTE root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
| o*+**+.. |
| ..+o= =+o . o..|
|. ..+ . +oE. o.oo|
| . . o.o.O..o..|
| . S @ .o o.|
| . o o o..|
| .. .|
| .. |
| .. |
+----[SHA256]-----+
#一路回车生成密钥
Git常用命令
git remote add [remote] [url] #添加(关联)远程库
git remote set-url [remote] [url] #修改远程仓库
git clone [url] #克隆远程仓库项目
git remote #查看指定远程仓库命名简写
git remote –v #查看远程仓库详细信息以及名称对应URL
git push -u remote master #第一次推送master分支的所有内容
git fetch remote [branch/tag] #下载远程仓库的所有变动
git pull remote [branch/tag] #拉取主分支最新版本(可以拉取其他分支)
git push remote [branch/tag] --force #强行推送当前分支至远程分支,及时冲突
git push remote [branch/tag] --all #推送所有分支到远程仓库
git remote rename [oldname] [newname] #修改远程仓库名称
git remote remove [name] #删除远程仓库名称以及URL地址git remote add [remote] [url] #添加(关联)远程库
git remote set-url [remote] [url] #修改远程仓库
git clone [url] #克隆远程仓库项目
git remote #查看指定远程仓库命名简写
git remote –v #查看远程仓库详细信息以及名称对应URL
git push -u remote master #第一次推送master分支的所有内容
git fetch remote [branch/tag] #下载远程仓库的所有变动
git pull remote [branch/tag] #拉取主分支最新版本(可以拉取其他分支)
git push remote [branch/tag] --force #强行推送当前分支至远程分支,及时冲突
git push remote [branch/tag] --all #推送所有分支到远程仓库
git remote rename [oldname] [newname] #修改远程仓库名称
git remote remove [name] #删除远程仓库名称以及URL地址1、git clone 与 git pull 相同点
相同点:都是从远程服务器拉取代码到本地2、git clone 与 git pull 不同点
git clone
是在本地没有版本库的时候,从远程服务器克隆整个版本库到本地,是一个本地从无到有的过程。git pull
在本地有版本库的情况下,从远程库获取最新commit 数据(如果有的话),并merge(合并)到本地。git pull = git fetch + git merge3、使用场景
通常情况下,远程操作的第一步,是使用git clone从远程主机克隆一个版本库到本地。本地修改代码后,每次从本地仓库push到远程仓库之前都要先进行git pull操作,保证push到远程仓库时没有版本冲突。