1.简介
GitLab 是集代码托管、DevOps 自动化于一体的研发平台,最大特色是开源免费私有化部署,企业级流程与权限管控能力强劲。
对比 GitHub:GitHub 胜在全球开源生态与社区,GitLab 强于私有化部署和一站式 DevOps;
对比 Gitee:Gitee 主打国内高速访问与本土化服务,GitLab 在企业级自动化、私有化功能上更全面。
2.Gitlab安装
以Centos7为例,首先更换阿里的软件源:教程如下:
x86及ARM架构的Centos系统更换yum源,提升软件下载更新速度
安装 GitLab
# 直接安装最新版
yum install -y gitlab-ce
软件包比较大,需要耐心等待

出现如下样式代表安装成功:

3.Gitlab配置
3.1 端口配置
注意关闭防火墙或针对拟开通端口开放策略,否则Gitlab服务端口可能无法访问。
编辑/etc/gitlab/gitlab.rb 这个配置文件,修改如下行为需要的后台地址:

配置完成后,执行重新加载配置文件指令,启动过程较长,约3-10分钟不等,需要耐心等待一会儿
gitlab-ctl reconfigure
使用如下命令查看运行状态:
gitlab-ctl status

访问刚才配置的地址
127.0.0.1:8888,测试可正常打开:

3.2 root登录配置
3.2.1 查看默认root密码
cat /etc/gitlab/initial_root_password

然后使用用户名:root,和如上密码可以登录后台网页(此处使用了网页翻译)

3.2.1 中文设置
后台中的偏好设置可以选择简体中文,保存然后刷新页面即可

3.2.3 修改root密码
从后台网页修改后重新登录即可

3.3 关闭升级与启用注册
打开如下配置即可关闭升级提示,并启用注册功能

3.4 测试注册功能
3.4.1 普通用户注册
选择注册,填写账号密码、邮箱等信息,注意注册后不能立即登录,需要root管理员审批


3.4.2 管理员审批
在管理中心-用户菜单下,可以看到待通过的账号,点击批准即可。

3.5 设置默认主分支名称
有时候为了保持和github或者gitee统一,需要修改主分支名称为master或者main,可以在如下配置:

3.6 新建群聊或仓库,赋予用户权限
root账户下新增不同的群聊,或者是代码仓库

然后在群聊中可以新增不同的项目代码仓库,并可以选择人员权限


不同的权限含义如下:

4.用户免密登录设置
首先生成本机的密钥,依次执行:
cd ~/.ssh
# 设置你的邮箱
ssh-keygen -t rsa -C "XXXX@XXXXX.cn"
#查看密钥
cat id_rsa.pub

然后在SSH密钥里面添加即可

5.首次代码推送
新建仓库之后,gitlab本身会提示有一些命令:


5.1 全局设置
git config --global user.name "gitlab的账号名"
#例如git config --global user.name "二狗 李"
git config --global user.email "注册gitlab的邮箱"
#例如git config --global user.email "123456@qq.com"
5.2 初次上传代码(push master)
# 初始化
git init --initial-branch=master
# gti仓库地址根据实际替换
git remote add origin http://172.XX.XX.XX:XXX/群组名称/仓库名称.git
# 添加目录下所有文件
git add .
# 添加提交描述
git commit -m "firet add"
# 上传到master分支
git push origin master
上传代码到master后,建议立刻在后台gitlab页面增加一个dev分支用来开发用,防止在master主分支修改

5.3 测试下载代码(pull)
# 初始化
git init
# 添加仓库地址
git remote add origin http://172.XX.XX.XX:XXX/群组名称/仓库名称.git
# 从dev拉取数据
git pull origin dev
# 列出所有分支名称
git branch -a
# 切换dev分支
git checkout dev

5.4 在dev下修改代码后上传(push)
后续常用三行命令即可
# 在dev分支下可以编辑修改代码,修改后可以上传到dev分支同步
git add .
git commit -m "V2.0"
git push
6.其他说明
6.1 常用GIT命令

6.2 gitlab软件其他常用配置路径
gitlab组件日志路径:/var/log/gitlab
gitlab配置路径:/etc/gitlab/ 路径下有gitlab.rb配置文件
应用代码和组件依赖程序:/opt/gitlab
各个组件存储路径: /var/opt/gitlab/
仓库默认存储路径 /var/opt/gitlab/git-data/repositories
版本文件备份路径:/var/opt/gitlab/backups/
nginx安装路径:/var/opt/gitlab/nginx
redis安装路径:/var/opt/gitlab/redis
6.3 其他GitLab软件常用命令
#查看服务状态
gitlab-ctl status
使用控制台实时查看日志
# 查看所有的logs; 按 Ctrl-C 退出
gitlab-ctl tail
# 拉取/var/log/gitlab下子目录的日志
gitlab-ctl tail gitlab-rails
# 拉取某个指定的日志文件
gitlab-ctl tail nginx/gitlab_error.log
#启动关闭gitlab
gitlab-ctl start
gitlab-ctl stop #停止
gitlab-ctl status #查看状态
gitlab-ctl restart #重启
gitlab-ctl reconfigure #更新配置文件
gitlab-ctl help #帮助
gitlab-rake gitlab:check SANITIZE=true --trace 检查gitlab
#gitlab 默认的日志文件存放在/var/log/gitlab 目录下
gitlab-ctl tail #查看所有日志
#禁止 Gitlab 开机自启动
systemctl disable gitlab-runsvdir.service
#启用 Gitlab 开机自启动
systemctl enable gitlab-runsvdir.service
7.可能的错误
7.1 git代码无法上传的问题
用惯gitee等系统的可能遇到使用SSH地址无法上传的问题,切换成HTTP地址即可成功。另外上传的时候,务必确认是否开启某些科学上网工具,实测开启代理网络后,可能无法上传成功!
7.2 无法切换dev分支的问题
网页后台新建dev分支后,git pull的时候 ,选择git pull origin dev,然后git checkout dev就可以了
7.3 git时需要输入密码的问题
(1)检查SSH密钥是否在gitlab后台网页添加免密登录;
(2)首次使用的时候可能需要输入一次账号密码,按照提示输入即可;
(3)还有一种情况,可能没有初始化,参考本文5.1节全局设置。
8.致谢
相关教程参考如下连接:
[1] 【GIT】基于git的gitee代码管理使用详细教程
[2] Gitlab 仓库搭建(详细版)
[3] gitlab初始化项目上传到gitlab一直提示输入密码错误


8362

被折叠的 条评论
为什么被折叠?



