linux环境GitLab服务部署安装及使用

发布时间:2026/9/9 14:32:55

linux环境GitLab服务部署安装及使用
一、GitLab介绍GitLab是利用Ruby onRails一个开源的版本管理系统实现一个自托管的Git项目仓库可通过Web界面进行访问公开的或者私人项目。二、GitLab安装1、先安装相关依赖yum -y install policycoreutils openssh-server openssh-clients postfix policycoreutils-python2、启动postfix并设置开机自启动支持gitlab邮件发送systemctl enable postfix systemctl start postfix3、下载并安装Gitlab社区版RPM包点击下载gitlab-ce-14.10.5-ce.0.el7.x86_64.rpm放到服务器指定目录输入下面指令执行安装rpm -ivh gitlab-ce-14.10.5-ce.0.el7.x86_64.rpm三、GitLab配置1、配置端口号vi /etc/gitlab/gitlab.rb external_url http://103.45.163.129:9898将puma[‘port’] 8080取消注释并且改为别的端口不能和external_url 的端口重复然后再保存2、配置默认日志目录在 /etc/gitlab/gitlab.rb 文件中有许多用于各种类型日志的 log_directory键。取消注释并更新要放置在其他地方的所有日志的值将下面的配置在配置文件中/etc/gitlab/gitlab.rb放开# For example: gitlab_rails[log_directory] /var/log/gitlab/gitlab-rails puma[log_directory] /var/log/gitlab/puma registry[log_directory] /var/log/gitlab/registry ...3、Gitlab邮箱配置这里以QQ exmail (腾讯企业邮箱)为例gitlab_rails[smtp_enable] true gitlab_rails[smtp_address] smtp.exmail.qq.com gitlab_rails[smtp_port] 465 gitlab_rails[smtp_user_name] xxxxxx.com gitlab_rails[smtp_password] password gitlab_rails[smtp_authentication] login gitlab_rails[smtp_enable_starttls_auto] true gitlab_rails[smtp_tls] true gitlab_rails[gitlab_email_from] xxxxxx.com gitlab_rails[smtp_domain] exmail.qq.com # 示例 gitlab_rails[smtp_enable] true gitlab_rails[smtp_address] smtp.exmail.qq.com gitlab_rails[smtp_port] 465 gitlab_rails[smtp_user_name] fiendsintech.cn gitlab_rails[smtp_password] 123qwe gitlab_rails[smtp_authentication] login gitlab_rails[smtp_enable_starttls_auto] true gitlab_rails[smtp_tls] true gitlab_rails[gitlab_email_from] fiendsintech.cn gitlab_rails[smtp_domain] exmail.qq.com4、配置修改完执行以下命令gitlab-ctl reconfigure gitlab-ctl restart四、GitLab常用命令# 开启,关闭,重启: gitlab组件 gitlab-ctl {start|stop|restart|status} gitlab-ctl start gitlab-ctl stop gitlab-ctl restart gitlab-ctl status # 重载配置文件(重新编译gitlab的配置) gitlab-ctl reconfigure # 验证配置文件 gitlab-ctl show-config # 检查gitlab gitlab-rake gitlab:check SANITIZEtrue --trace # 查看日志 gitlab-ctl tail gitlab-ctl tail nginx/gitlab_access.log gitlab-ctl tail nginx/gitlab_error.log # 常用目录 日志地址/var/log/gitlab/ # 对应各服务的打印日志 服务地址/var/opt/gitlab/ # 对应各服务的主目录五、GitLab首次登录gitlab搭建成功后首次登录可以直接使用root账号因为如果注册注册成功后还不能直接登录需要管理员批准不如直接用root账号登录1、进入gitlab控制台查找root账号gitlab-rails console -e production输入下面查找指令admin_users User.where(admin: true)可以看到root账号的id为1根据id去修改root账号的密码2、重新设置gitlab root账号密码user User.find_by(id: 1) user.password pwd123 user.password_confirmation pwd123 user.save!3、重置过的密码重新登录六、GitLab创建组、项目、用户创建顺序先创建组——再创建项目——最后创建用户项目、组、用户的关系把创建的用户和项目加入组中只有同一组的用户才能操作该组的项目。1、创建组点击设置可以看到组、项目、人员关系2、创建项目并把项目加入组中3、创建完项目会提示添加ssh key随便进入一个磁盘目录Git Bash Here使用指令git config --list查看是否已经做了git相关配置然后输入下面指令一路回车可以获取到ssh key# ssh-keygen -t rsa # 一路回车 [rootlocalhost /]# cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC11yc2EAAAADAQABAAABAQDWqAYmPfWpw3I0GWqaIsUWJYPtn7VywwaQaM2YX311LCaO1DCPcSBQDw2/Iqbl1bifelQTIOTcKaDVsL9i5B12qdmLhasgYPXilxnIsRLOQGDU3OUBLq2FUJQvPwNoA1Lbs3yMxylkgsKUXZGsQwVPO9WZhePf/JuXSV1hQhqcDzV9RRh4jwwmhaztUtaFPlh1cj5rUPuLzasvLQFMyjJR1qyXhyzsNJGVp5zFo1PO1PHsCSJ1fKfTqsOZnpPOaDwCU3AK5oGcZmijawEl9uR8vlXJ0u1rbAcpKY702hXxTuR1bAe5PcarSlVgtih07sQoDFUczY2Rc2DW8VX9p6Etx/ rootlocalhost.localdomain3、创建普通用户并加入到群组1、设置禁止用户注册2、为开发创建账户,其他保持默认即可填写完保存后再设置密码3、创建完成后最后我们可以看到创建的[仓库] [用户] [群组]点击【develpment】将新创建的新用户加入到develpment群组才能让该用户去管理群组中的项目将项目url复制下来后面关联使用4、使用新创建的用户账号登录gitlab七、将新项目如何推送到gitlab仓库1、gitlab上新建一个空白项目2、初始化本地仓库并commit项目进入本地该项目目录下右键Git Bash Here打开git命令窗口初始化本地仓库git init将本地项目的所有文件添加到暂存区git add .commit提交项目git commit -m 初始化项目建立本地仓库和远程仓库关系并推送git remote add origin https://gitlab.xx.com/xxxx.git如果在这一步时如果出现错误fatal:remote origin already exists需要先执行下面的命令清除关联关系然后再进行上一步动作git remote rm origin查看关联关系是否成功建立git remote -v先拉取一下远程仓库内容git pull --rebase origin master再推送本地内容到远程仓库git push origin master最后看效果八、附.gitignore文件未生效处理.gitignore 文件来看确实已经包含了忽略 .idea/ 目录的规则但是没有生效说明.idea 目录中的文件已经被 Git跟踪并提交过了1、强制移除 .idea 目录下的文件git rm -r --cached -f .idea2、提交更改git add .gitignore git commit -m Remove .idea directory from Git tracking3、推送更改到远程仓库git push origin your-branch九、配置你的gitgit config --global credential.https://gitee.com.provider generic git config --global user.email xxx163.com git config --global user.name xxx -- 先删除所有之前配置的信任的文件目录 git config --global --unset-all safe.directory -- 再配置所有目录都信任不推荐但开发机常用 git config --global --add safe.directory * -- 最后查看以上的全局git配置 git config --global --list

相关新闻

Honey Select 2完整汉化与去码补丁终极指南:三步解决语言障碍和视觉限制

Honey Select 2完整汉化与去码补丁终极指南:三步解决语言障碍和视觉限制

2026/9/4 11:35:58

Honey Select 2完整汉化与去码补丁终极指南:三步解决语言障碍和视觉限制 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 你是否曾经因为日文界面而错…

Compressor.js:浏览器端图像压缩技术的架构演进与实践范式

Compressor.js:浏览器端图像压缩技术的架构演进与实践范式

2026/9/8 15:39:21

Compressor.js:浏览器端图像压缩技术的架构演进与实践范式 【免费下载链接】compressorjs JavaScript image compressor. 项目地址: https://gitcode.com/gh_mirrors/co/compressorjs 在Web应用性能优化的技术栈中,图像处理一直占据着关键位置。随…

测试测测测吧

测试测测测吧

2026/8/28 5:05:04

机盖重拓扑P2阶段:硬表面建模布线细节与工程实践指南

机盖重拓扑P2阶段:硬表面建模布线细节与工程实践指南

2026/9/9 14:24:15

很多做硬表面建模的同学,应该都有过这种体验:高模雕刻阶段很爽,细节怎么加都行,一到重拓扑就头疼,尤其是机盖这种“看似平整、实则到处都是曲面转折”的部件。前面 P1 阶段可能已经解决了大型和整体布线框架&#xff0…

Claude Code本地代理实战:npx启动cc-switch全指南

Claude Code本地代理实战:npx启动cc-switch全指南

2026/9/9 14:24:15

1. “ruflo”到底是什么?一个被误传的AI工具名背后的真实图景最近在多个开发者社区、技术群和AI工具分享帖里,频繁出现“ruflo”这个词——它常和Claude Code、Codex、npx、Agent开发等热词捆绑出现,比如“ruflo安装失败”“ruflo Codex配置…

opencode不是工具名,而是开发协作失焦的信号

opencode不是工具名,而是开发协作失焦的信号

2026/9/9 14:24:15

1. “opencode”不是标准工具名,而是开发者在混乱生态中喊出的求救信号“opencode”这个词本身没有官方定义——它既不是 npm 官方注册包、不是 GitHub 上有明确 star 数与文档的开源项目、也不是任何主流 IDE 内置功能模块。但过去三个月里,我在技术社区…

XS2A动态沙箱搭建实战:基于XS2ABank实现PSD2合规测试

XS2A动态沙箱搭建实战:基于XS2ABank实现PSD2合规测试

2026/9/9 14:24:15

简介:这是一套面向开放银行接口开发、测试与合规验证人员的XS2A动态沙箱,以柏林集团NextGenPSD2模型为基础,模拟ASPSP的OpenAPI PSD2服务,让第三方服务商(TPP)在隔离环境中验证账户信息服务与支付发起流程。…

从Cursor套壳Kimi事件,拆解AI编程工具的模型API接入与验证

从Cursor套壳Kimi事件,拆解AI编程工具的模型API接入与验证

2026/9/9 14:24:15

早上看到群里一堆人转发同一条消息的时候,我第一反应是“又来瓜了”。紧接着点进去一看,好家伙,某国外AI编程工具在对话里承认自己是Kimi,创始人出来回应说是“忘记署名了”。Cursor套壳Kimi被全网锤这个事,刷了一整天…

新手也能上手 AI论文软件:2026年最新测评与推荐

新手也能上手 AI论文软件:2026年最新测评与推荐

2026/9/9 14:14:15

2026年真正好用的AI论文软件,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

中国人民大学杨琳团队《Nature Communications》 | 全球潮汐湿地土壤有机碳时空格局与环境驱动:一项2009-2020年的全球评估

中国人民大学杨琳团队《Nature Communications》 | 全球潮汐湿地土壤有机碳时空格局与环境驱动:一项2009-2020年的全球评估

2026/9/9 1:14:29

本文首发于“生态学者”!从“湿地面积”到“土壤碳密度”:为什么需要重新认识潮汐湿地蓝碳变化?潮汐湿地位于陆地与海洋的交汇地带,包括红树林、盐沼和潮滩,是全球重要的蓝碳生态系统。其土壤能够长期储存大量有机碳&a…

adb抓包

adb抓包

2026/9/8 4:55:53

前言 本文介绍如何通过 tcpdump 在 Android 手机上抓取网络数据包,并在电脑端使用 Wireshark 进行分析。适用于需要排查 App 网络请求、分析接口调用或调试网络问题的开发与测试场景。1. 手机要有 root 权限2. 下载 tcpdump3. adb push C:\Users\zhangkuixun\Downlo…

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战

2026/9/8 22:37:26

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战 在云原生基础设施中,容器镜像体积直接决定了服务的部署速度与弹性扩容敏捷度。对于传统的 Go / Java 微服务,镜像体积通常被严格控制在 50MB 到 200MB 以内,拉取镜像只…

扩散模型图像恢复实战:从DDPM原理到PyQt5可视化系统

扩散模型图像恢复实战:从DDPM原理到PyQt5可视化系统

2026/9/9 0:03:36

简介:面向毕业设计场景的PyQt5扩散模型图像恢复项目,提供完整Python源码与项目说明,适合图像处理、深度学习方向的高年级本科生与研究生参考。项目在模块设计上覆盖图像处理、扩散模型、参数配置、用户界面与结果评估五部分,具体涉…

开关电源环路裕量测试实战:相位裕量与增益裕量详解

开关电源环路裕量测试实战:相位裕量与增益裕量详解

2026/9/9 0:03:36

1. 项目概述:为什么环路裕量测试是电子工程师绕不开的“体检项目”“从零开始的电子工程师生活(6)——环路裕量测试”,这个标题一出来,老电源工程师可能已经下意识摸了摸示波器探头,新同事则大概率在想&…

定时插座芯片怎么选?专用定时IC与单片机MCU选型对比

定时插座芯片怎么选?专用定时IC与单片机MCU选型对比

2026/9/9 0:03:36

拆开市面上不同价位的定时插座,你会发现一个有意思的现象:有的里面躺着一颗黑色的软封装芯片,丝印都看不清;有的则是一块小小的蓝色或绿色PCB,上面赫然印着STM8或者STC的字样。同样叫"定时插座",…

远程协作的工作台整理

远程协作的工作台整理

2026/9/8 4:23:39

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/8 3:19:39

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/8 4:00:23

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…