CentOS 7/8安装并配置GitLab 13记录

勤奋不是嘴上说说而已,而是实际的行动,在勤奋的苦度中持之以恒,永不退却。业精于勤,荒于嬉;行成于思,毁于随。在人生的仕途上,我们毫不迟疑地选择勤奋,她是几乎于世界上一切成就的催产婆。只要我们拥着勤奋去思考,拥着勤奋的手去耕耘,用抱勤奋的心去对待工作,浪迹红尘而坚韧不拔,那么,我们的生命就会绽放火花,让人生的时光更加的闪亮而精彩。

导读:本篇文章讲解 CentOS 7/8安装并配置GitLab 13记录,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

概述

GitLab,基于Ruby开发的开源Git项目管理应用,其提供的功能和Github类似。GitLab提供一个CE社区版本,用户可以将其部署在自己的内网服务器上,可用于团队内部的项目代码托管仓库。

本文记录搭建内网GitLab Server的过程和遇到的问题。

注:CentOS 7/8安装Git:yum install git

安装

首先下载rpm源安装包,一定要先确定清楚自己的CentOS是什么版本,查看版本号:
cat /etc/redhat-release

输出:CentOS Linux release 8.3.2011

如果是CentOS 7,则对应el7
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.0.0-ce.0.el7.x86_64.rpm

本文基于CentOS 8系统,打开上述URL切换到el8路径下,随机选一个版本下载,本文没有选择最新版本:
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el8/gitlab-ce-13.0.0-ce.0.el8.x86_64.rpm

CentOS 8系统,直接安装:rpm -i

CentOS 7系统,需要指定已经下载到本地的rpm包:rpm -i gitlab-ce-13.0.0-ce.0.el7.x86_64.rpm

编辑配置文件:vim /etc/gitlab/gitlab.rb

查看模式,输入/external_url回车查找,按n继续向下找(N则向上查找),找到external_url 'http://gitlab.com'并修改为:external_url 'http://192.168.20.111:8090'

注意每次修改该配置文件后,都需要执行:

gitlab-ctl reconfigure
gitlab-ctl restart

浏览器地址栏输入上面配置的external_url,如果打不开,则关闭防火墙:systemctl stop firewalld

默认的用户名是root,根据系统指引修改密码。

至此,安装成功。

操作

实战

新建组别Group

root用户,可以添加Group:
在这里插入图片描述
设置Group的可见性等级:
在这里插入图片描述
三个等级介绍:

  1. Private,私有
  2. Internal,内部
  3. Public,公有

新建工程project

在这里插入图片描述
在新建Project之前,最好先创建Group,否则默认会创建中root用户下面:
在这里插入图片描述
最后得到的是:
在这里插入图片描述
git clone的地址还是:http://192.111.11.111:8090/root/test.git

新增用户

退出root用户,然后注册用户,如johnny,设置密码johnny233,邮箱可随便填写,可以成功登录系统。

邀请用户

Ctrl + Shift + N快捷键打开Chrome的隐身模式,新开页面,以root用户登录,进入刚才添加的group,然后可以邀请用户,并设置用户的角色和权限。

以组别Group维度来邀请用户:
在这里插入图片描述
以工程项目维度来邀请用户:
在这里插入图片描述
有四种role permission:
在这里插入图片描述

  1. Guest,
  2. Reporter
  3. Developer
  4. Maintainer,

Git clone/push

打开命令行生成SSH key,
添加ED25519 SSHkey:
ssh-keygen -t ed25519 -C “”

添加SSH key:
ssh-keygen -t rsa -b 2048 -C "user@email"
将生成的pub文件的内容配置到SSH key里面,即可push代码,

然后 git clone 项目时,使用 http 协议,输入注册的用户名/密码,

初始化本地项目推到远程服务器

进入到本地项目文件夹,右键选择Git Bash Here,初始化git init为一个Git仓库,先添加.gitignore文件,然后添加所有文件git add .,查看状态git status .,提交git commit -m "init"
在远程服务器端新建一个工程,点击Git clone得到其地址。
设置远程仓库地址:
git remote add origin http://192.111.11.111:8090/root/local-test.git
查看状态:
git remote -v
获取远程库与本地同步合并:
git pull --rebase origin master
输入U/P
git push -u origin master

.gitignore不生效

细心的开发者,在上面的git status .步骤执行时,可能会看到明明已经在项目的根目录下新增配置文件.gitignore,且有target/配置项,但是却输出:
new file target\classes\add.sql
说明.gitignore未生效,可是这个target配置项显然是没有问题的。
原因:
.gitignore只能忽略原来没有被跟踪的文件,因此跟踪过的文件是无法被忽略的。
解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
git rm -r --cached .
输出:

error: the following file has staged content different from both the
file and the HEAD:
    .gitignore
(use -f to force removal)

再次执行:
git rm -r -f --cached .
然后重新添加文件git add .,并执行git status .,输出正常,即target目录下面的class文件并不会被加入暂存区。
注意在.gitignore配置文件中,target/*/target/是有区别的。

问题

johnny用户git push报错:

remote: GitLab: You are not allowed to push code to protected branches on this project.
To http://192.111.11.111:8090/root/test.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'http://192.111.11.111:8090/root/test.git'

因为johnny这个用户的change permission是developer,对于master分支是默认没有push权限,升级到maintainer,即可push到远程的master分支。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/142244.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!