下载地址
docs.gitlab.com/ee/install/… #安装依赖
packages.gitlab.com/gitlab/gitl… #官方下载地址
mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ #清华大学镜像源
step1 安装和配置必须的依赖项
sudo yum install -y curl policycoreutils-python openssh-server perl
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
安装可选项 安装 Postfix 以发送电子邮件通知
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
step2 下载/安装极狐GitLab
curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
step3 gitlab安装
yum install install gitlab-jh
step4 配置邮箱(可选)
vim /etc/gitlab/gitlab.rb
grep -v "#" /etc/gitlab/gitlab.rb | grep -v "^$" #验证配置文件
external_url 'http://192.168.31.123'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.126.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "wffeige@126.com"
gitlab_rails['smtp_password'] = "xxx"
gitlab_rails['smtp_domain'] = "126.com"
gitlab_rails['smtp_authentication'] = :login
# gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = "wffeige@126.com"
user["git_user_email"] = "wffeige@126.com"
重新加载配置
gitlab-ctl reconfigure
step5 登陆web
cat /etc/gitlab/initial_root_password #查看登陆密码 然后访问http://192.168.31.123
gitlab项目与账户权限
账户权限分类:
-
Guest-访客
- 可以创建issue、发表评论,不能读写版本库
-
Reporter-Git项目测试人员
- 可以克隆代码,不能提交,QA、PM可以赋予这个权限
-
Developer-Git项目开发人员
- 可以克隆代码、开发、提交、push,RD(Research and Development engineer,研发工程师)可以赋予此权限
-
Master-Git项目管理员
- 可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予此权限
-
Owner-Git系统管理员即Administrator
- 可以设置项目访问权限、删除项目、迁移项目、管理组成员,研发组leader可以赋予此权限
项目权限分类:
- Private:私有 项目、只有组内成员才能看到
- Internal:内部项目、只有登录的用户就能看到
- Public:公开项目、所有人都能看到
gitlab基础管理
目录介绍
- /etc/gitlab #配置文件目录
- /run/gitlab #运行pid目录
- /opt/gitlab #安装目录
- /var/opt/gitlab #数据目录
- /var/log/gitlab #日志目录
管理相关的操作
关闭账户注册
创建group
创建用户
创建project
对用户授权project权限
测试用户clone与push权限
维护相关的操作
gitlab-rake #数据备份恢复等数据操作
gitlab-ctl #客户端命令行操作行
gitlab-ctl stop #停止gitlab
gitlab-ctl start #启动gitlab
gitlab-ctl restart #重启gitlab
gitlab-ctl status #查看组件运行状态
gitlab-ctl tail nginx #查看某个组件的日志
gitlab工作流程
-
工作区
- clone到本地办公PC的代码或者开发自己编写的代码文件所在的目录,通常是编写的代码所在的目录名称。
-
暂存区
- 用于存储在工作区中对代码进行修改后的文件所保存的地方,使用git add命令添加。
-
本地仓库
- 用于提交存储在工作区和暂存区中改过的文件地方,使用git commit 命令提交。
-
远程仓库
- 多个开发共同协作提交代码的仓库,即gitlab服务器。
gitlab常用命令
git客户端常用基础命令:
git clone #克隆代码到本地
git push #提交代码到服务器
git pull #更新本地代码
git add index.html、abc/、 . #添加指定文件、目录或当前目录下所有数据到暂存区
git commit -m “xx“ #提交文件到工作区
git status #查看工作区的状态
git reset --hard HEAD^^ #git版本回滚, HEAD为当前版本,加一个^为上一个, ^^为上上一个版本
git reflog # #获取每次提交的ID,可以使用--hard根据提交的ID进行版本回退
git reset --hard 5ae4b06 #回退到指定id的版本
git config --global user.name “NAME” #设置全局用户名
git config --global user.email xxxx@yy.com #设置全局邮箱
git config --global --list #列出用户全局设置
git branch #查看当前所处的分支
checkout -b develop #创建并切换到一个新分支
checkout develop #切换分支
git log #查看操作日志
vim .gitignore #定义忽略文件上传至gitlab
gitlab数据备份
gitlab-ctl stop unicorn sidekiq
gitlab-rake gitlab:backup:create #在任意目录即可备份当前gitlab数据
/var/opt/gitlab/nginx/conf #nginx配置文件
/etc/gitlab/gitlab.rb #gitlab配置文件
/etc/gitlab/gitlab-secrets.json #key文件
gitlab-ctl start unicorn sidekiq
gitlab恢复
查看要恢复的文件:
ll /var/opt/gitlab/backups/ # 查看Gitlab数据备份目录
gitlab-ctl stop unicorn sidekiq #停止服务
gitlab-rake gitlab:backup:restore BACKUP=1666577054_2022_10_24_15.4.3 #unix时间戳、备份年月日、版本号
gitlab-ctl start unicorn sidekiq #启动服务