gitlab安装&介绍&相关操作命令

200 阅读4分钟

下载地址

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

image.png

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 

image.png

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工作流程

image.png

  • 工作区

    • 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 #启动服务

创建账号

http://192.168.31.123/admin/users