news 2026/5/19 4:39:05

GitLab讲解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GitLab讲解

目录

  • 一、GitLab概念
  • 二、GitLab安装
  • 三、GitLab汉化
  • 四、Gitlab使用
    • 1、登录基本操作
    • 2、使用方法

一、GitLab概念

GitLab是一个用于仓库管理系统的开源项目使用Git作为代码管理工具,并在此基础上搭建起来的web服务。可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。

二、GitLab安装

Gitlabrpm包集成了它需要的软件,简化了安装步骤,所以直接安装rpm包即可,rpm包的获取从官方网站或者国内镜像源(如:清华https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/)获取,gitlab又分为社区版和企业版(收费),这里部署的是社区版本10.8.4

[root@gitlab ~]# mkdir -p /service/tools[root@gitlab ~]# cd /service/tools/[root@gitlab tools]# yum localinstall -y gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm #安装下载好的rpm包或者[root@gitlab ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm #执行rpm -ivh 在线安装


安装成功,但是需要配置,安装完成后出现上面的提示,按照提示修改配置文件中的url地址为本地服务器的地址

[root@gitlab tools]# vim /etc/gitlab/gitlab.rbexternal_url'http://192.168.0.108'

[root@gitlab tools]# gitlab-ctl reconfigure #重新加载配置[root@gitlab tools]# gitlab-ctl stop #停止gitlab,进行后面的汉化[root@gitlab tools]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION10.8.4#查看版本[root@gitlab tools]# rpm -qa gitlab-cegitlab-ce-10.8.4-ce.0.el7.x86_64#查看版本[root@gitlab tools]# ls /opt/gitlab/ #相关目录

[root@gitlab tools]# ll /var/opt/gitlab #相关目录

三、GitLab汉化

默认的全英文界面对于英文水平低的来讲当然用着很不舒服,于是便需要来一波操作进行汉化,英文好的请自觉忽略
GitLab中文社区的项目,v7-v8.8是由Larry Li发起的"GitLab中文社区版项目"(https://gitlab.com/larryli/gitlab),从v8.9之后由@xhang开始继续汉化项目(https://gitlab.com/xhang/gitlab

[root@gitlab tools]# pwd/service/tools[root@gitlab tools]# mkdir /backup[root@gitlab tools]# cp /opt/gitlab/embedded/service/gitlab-rails/* /backup #防止汉化失败,备份原文件[root@gitlab tools]# git clone https://gitlab.com/xhang/gitlab.git #下载最新的汉化包

汉化包的版本更新速度不得而知,所以尽量不要安装最新版本的gitlab。如果是要下载老版本的汉化包,需要加上老版本的分支,如果想下载10.0.2,可以运行如下语句

[root@gitlab tools]# git clone https://gitlab.com/xhang/gitlab.git -b v10.0.2-zh[root@gitlab tools]# ls #git下来的文件为gitlabgitlab gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm[root@gitlab tools]# \cp -rf gitlab/* /opt/gitlab/embedded/service/gitlab-rails/ #拷贝文件检验汉化[root@gitlab tools]# gitlab-ctl reconfigure #加载配置(第一次执行此命令会启动,若只启动执行start)

启动时查看控制台输出,需要等待一段时间,无输出后启动完成,执行free -m命令查看到当前的内存使用情况为

[root@gitlab tools]# free -mtotal used free shared buff/cache available Mem: 2993 2123 156 62 713 597 Swap: 2047 0 2047[root@gitlab tools]# netstat -lntupActive Internet connections(only servers)Proto Recv-QSend-QLocal Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:9100 0.0.0.0:*LISTEN 4319/node_exporter tcp 0 0 127.0.0.1:9229 0.0.0.0:*LISTEN 4628/gitlab-workhor tcp 0 0 127.0.0.1:9168 0.0.0.0:*LISTEN 4659/ruby tcp 0 0 127.0.0.1:8080 0.0.0.0:*LISTEN 4191/unicorn master tcp 0 0 0.0.0.0:80 0.0.0.0:*LISTEN 4223/nginx: master tcp 0 0 127.0.0.1:8082 0.0.0.0:*LISTEN 4196/sidekiq 5.0.5 tcp 0 0 127.0.0.1:9236 0.0.0.0:*LISTEN 4642/gitaly tcp 0 0 0.0.0.0:22 0.0.0.0:*LISTEN 1439/sshd tcp 0 0 0.0.0.0:8060 0.0.0.0:*LISTEN 4223/nginx: master tcp 0 0 0.0.0.0:6783 0.0.0.0:*LISTEN 4696/alertmanager tcp 0 0 127.0.0.1:9121 0.0.0.0:*LISTEN 4425/redis_exporter tcp 0 0 127.0.0.1:9090 0.0.0.0:*LISTEN 4681/prometheus tcp 0 0 127.0.0.1:9187 0.0.0.0:*LISTEN 4710/postgres_expor tcp 0 0 127.0.0.1:9093 0.0.0.0:*LISTEN 4696/alertmanager tcp6 0 0 ::1:9168 :::*LISTEN 4659/ruby tcp6 0 0 :::22 :::*LISTEN 1439/sshd

四、Gitlab使用

1、登录基本操作

GitLab终端常用命令

gitlab-ctlstart#启动所有 gitlab 组件;gitlab-ctl stop#停止所有 gitlab 组件;gitlab-ctl restart#重启所有 gitlab 组件;gitlab-ctl status#查看服务状态;gitlab-ctl reconfigure#启动服务;vim/etc/gitlab/gitlab.rb#修改默认的配置文件;gitlab-rake gitlab:check SANITIZE=true--trace#检查gitlab;gitlab-ctl tail#查看日志;

修改密码后进行登录,登录的用户名为root
如果80和8080端口被占用可以修改

[root@gitlab tools]# vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rblisten"127.0.0.1:8080",:tcp_nopush => true

修改nginx端口

[root@gitlab tools]# vim /var/opt/gitlab/nginx/conf/gitlab-http.confserver{listen*:80;}

修改Prometheus端口

[root@gitlab tools]# vim /etc/gitlab/gitlab.rbexternal_url'http://10.0.0.5:port'#根据需要修改端口

修改后需要重新加载配置并启动

2、使用方法

访问:GitLab访问地址

登录:默认用户名是root,密码使用刚刚重置过的。

创建空白项目

选择项目路径,输入项目名称,项目描述,选择项目等级(私人的,内部的,公开的),

我们能看到Gitlab给我们的使用当前项目的教程。学过git和GitHub,想必我这些已经都会了。

我们发现上面有一行黄色的提示,要求我们配置ssh

首先生成公钥:

[root@gitlab-client ~]# ssh-keygen

[root@gitlab-client ~]# cat .ssh/id_rsa.pub #查看公钥


将上面的公钥文件复制到gitlab中


我们在远程机器生成私钥
生成新的SSH密钥:ssh-keygen -t rsa -C "your_email@address"
此命令将提示您用于存储密钥对和密码的位置和文件名。当提示输入位置和文件名时,只需按Enter键即可使用默认值。如果使用其他名称,则不会自动使用该密钥。
在C盘下 .ssh 文件夹中会生成 id_rsa 和 id_rsa.pub 两个文件,其中 id_rsa.pub 里面是以ssh-rsa开头并以您的用户名和主机结尾的完整密钥。将密钥复制粘贴到 profile settings中 SSH keys 选项卡下,add an ssh key ,保存。
步骤:

  • 在window系统打开命令行输入
  • ssh-keygen -t rsa -C “renliangjava@163.com”

打开id_rsa.pub,把所有内容复制

到Gitlab中将密钥复制粘贴到 profile settings中 SSH keys 选项卡下,add an ssh key ,保存。跟添加公钥的步骤完全一致

随机我们配置本地用户信息和本地库创建本地git库

rlsl180506@MACHENI-B936LIA MINGW64/d/testGit3 $ git init Initialized empty Git repository in D:/testGit3/.git/rlsl180506@MACHENI-B936LIA MINGW64/d/testGit3(master)$ git config--local user.name'zhangsan'rlsl180506@MACHENI-B936LIA MINGW64/d/testGit3(master)$ git config--local user.mail'zhangsan@126.com'rlsl180506@MACHENI-B936LIA MINGW64/d/testGit3(master)$ git remote add origin git@192.168.0.108:root/spring_src.git rlsl180506@MACHENI-B936LIA MINGW64/d/testGit3(master)$echo'test'> test.txt rlsl180506@MACHENI-B936LIA MINGW64/d/testGit3(master)$ git status On branch master No commits yet Untracked files:(use"git add <file>..."to include in what will be committed)test.txt nothing added to commit but untracked files present(use"git add"to track)rlsl180506@MACHENI-B936LIA MINGW64/d/testGit3(master)$ git add.warning: LF will be replaced by CRLF in test.txt.The file will have its original line endings in your working directory.rlsl180506@MACHENI-B936LIA MINGW64/d/testGit3(master)$ git commit-m'add a test file'[master (root-commit) 666da41]add a test file 1 file changed,1 insertion(+)create mode 100644 test.txt rlsl180506@MACHENI-B936LIA MINGW64/d/testGit3(master)$ git push-u origin master Enumerating objects: 3,done.Counting objects: 100%(3/3),done.Writing objects: 100%(3/3),216 bytes|216.00 KiB/s,done.Total 3(delta 0),reused 0(delta 0)To 192.168.0.108:root/spring_src.git*[new branch]master-> master Branch'master'setup to track remote branch'master'from'origin'.

此刻我们可以看到远程仓库里面文件以及推送。
随机我们将Spring源代码上传Gitlab

此时我可以通过另一个git本地库克隆

rlsl180506@MACHENI-B936LIA MINGW64/d/testGit4 $ git clone git@192.168.0.108:root/spring_src.git Cloning into'spring_src'...remote: Counting objects: 9622,done.remote: Compressing objects: 100%(6230/6230),done.remote: Total 9622(delta 2851),reused 9619(delta 2851)Receiving objects: 100%(9622/9622),13.57 MiB|14.34 MiB/s,done.Resolving deltas: 100%(2851/2851),done.Checking out files: 100%(7948/7948),done.rlsl180506@MACHENI-B936LIA MINGW64/d/testGit4 $ ll total 12 drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring_src/rlsl180506@MACHENI-B936LIA MINGW64/d/testGit4 $ cd spring_src/rlsl180506@MACHENI-B936LIA MINGW64/d/testGit4/spring_src(master)$ git config--local user.name'lisi'rlsl180506@MACHENI-B936LIA MINGW64/d/testGit4/spring_src(master)$ git config--local user.mail'lisi@126.com'rlsl180506@MACHENI-B936LIA MINGW64/d/testGit4/spring_src(master)$ git config--local-l core.repositoryformatversion=0 core.filemode=false core.bare=false core.logallrefupdates=true core.symlinks=false core.ignorecase=true remote.origin.url=git@192.168.0.108:root/spring_src.git remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*branch.master.remote=origin branch.master.merge=refs/heads/master user.name=lisi user.mail=lisi@126.com rlsl180506@MACHENI-B936LIA MINGW64/d/testGit4/spring_src(master)$ ll total 70-rw-r--r--1 rlsl180506 197121 11118 2月 19 11:26 build.gradle drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 buildSrc/-rw-r--r--1 rlsl180506 197121 2395 2月 19 11:26 CODE_OF_CONDUCT.adoc-rw-r--r--1 rlsl180506 197121 6308 2月 19 11:26 CONTRIBUTING.md drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 gradle/-rw-r--r--1 rlsl180506 197121 23 2月 19 11:26 gradle.properties-rwxr-xr-x 1 rlsl180506 197121 5533 2月 19 11:26 gradlew*-rw-r--r--1 rlsl180506 197121 2349 2月 19 11:26 gradlew.bat-rw-r--r--1 rlsl180506 197121 4529 2月 19 11:26import-into-eclipse.bat-rw-r--r--1 rlsl180506 197121 4078 2月 19 11:26import-into-eclipse.sh-rw-r--r--1 rlsl180506 197121 1868 2月 19 11:26import-into-idea.md-rw-r--r--1 rlsl180506 197121 2290 2月 19 11:26 README.md-rw-r--r--1 rlsl180506 197121 1154 2月 19 11:26 settings.gradle drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-aop/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-aspects/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-beans/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-context/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-context-indexer/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-context-support/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-core/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-expression/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-framework-bom/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-instrument/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-jcl/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-jdbc/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-jms/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-messaging/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-orm/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-oxm/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-test/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-tx/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-web/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-webflux/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-webmvc/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-websocket/drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 src/-rw-r--r--1 rlsl180506 197121 6 2月 19 11:26 test.txt drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 tx-spring-teach/rlsl180506@MACHENI-B936LIA MINGW64/d/testGit4/spring_src(master)$ vi test.txt rlsl180506@MACHENI-B936LIA MINGW64/d/testGit4/spring_src(master)$ git add.rlsl180506@MACHENI-B936LIA MINGW64/d/testGit4/spring_src(master)$ git commit-m'aa'[master 1c8f28d]aa 1 file changed,1 insertion(+)rlsl180506@MACHENI-B936LIA MINGW64/d/testGit4/spring_src(master)$ git push Enumerating objects: 5,done.Counting objects: 100%(5/5),done.Delta compressionusingup to 12 threads.Compressing objects: 100%(2/2),done.Writing objects: 100%(3/3),250 bytes|250.00 KiB/s,done.Total 3(delta 1),reused 0(delta 0)To 192.168.0.108:root/spring_src.git bf028b3..1c8f28d master-> master rlsl180506@MACHENI-B936LIA MINGW64/d/testGit4/spring_src(master)$

刷新Gitlab我们可以看到变化。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/16 18:28:34

Comsol超构表面动量空间参数图绘制指南

Comsol 超构表面动量空间参数图绘制在超构表面研究领域&#xff0c;绘制动量空间参数图对于理解超构表面的光学特性至关重要。Comsol作为一款强大的多物理场仿真软件&#xff0c;为我们提供了实现这一目标的有效途径。今天就来聊聊如何在Comsol里绘制超构表面动量空间参数图。…

作者头像 李华
网站建设 2026/5/13 16:32:33

Linux线程控制

一、互斥&#xff1a;临界资源的排他性访问1. 核心概念互斥&#xff0c;即对临界资源的排他性访问&#xff0c;是多线程安全的基础。临界资源&#xff1a;多线程环境下&#xff0c;会被多个线程同时读写的资源&#xff0c;比如全局变量、文件句柄、硬件设备等。这类资源的读写操…

作者头像 李华
网站建设 2026/5/18 17:50:38

永磁同步电机MotorCAD仿真详细流程揭秘

某永磁同步电机motorcad仿真流程,很详细 录制video文档最近在研究永磁同步电机的相关内容&#xff0c;发现MotorCAD这个软件在永磁同步电机仿真方面真的非常强大。今天就来给大家分享一下永磁同步电机MotorCAD的详细仿真流程&#xff0c;同时我还录制了配套的video&#xff0c;…

作者头像 李华
网站建设 2026/5/13 10:47:25

跳出“要么稳要么冲”陷阱:广告预算的确定性与增长性双驱法则

在亚马逊运营中&#xff0c;广告预算分配是一场精密的资源调度艺术&#xff0c;如何在“确保盈利”的确定性与“追求增长”的探索性之间找到平衡&#xff0c;是卖家必须掌握的核心能力。一、锚定底层逻辑&#xff1a;不同生命周期的预算哲学广告预算的设定&#xff0c;必须始于…

作者头像 李华
网站建设 2026/5/15 12:45:51

上海交大造出手机AI助手ColorAgent:不只是工具,更像贴心伙伴

这项突破性研究由上海交通大学与OPPO研究院联合完成&#xff0c;研究成果发表于2025年10月22日的arXiv预印本平台&#xff0c;论文编号为arXiv:2510.19386v1。研究团队由来自上海交通大学的李宁、吴正、张伟明等多位学者&#xff0c;以及OPPO研究院的林旗强、莫晓芸、赵音等专家…

作者头像 李华
网站建设 2026/5/10 21:47:46

机器视觉介绍

机器视觉的定义机器视觉&#xff08;Machine Vision&#xff09;是指通过计算机和图像处理技术模拟人类视觉功能&#xff0c;实现对物体识别、测量、定位和分析的自动化系统。广泛应用于工业检测、自动驾驶、医疗影像等领域。机器视觉的核心技术图像采集 通过摄像头、工业相机或…

作者头像 李华