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

发布时间:2026/7/10 15:01:40

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/7/10 15:01:40

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/7/10 14:51:39

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

测试测测测吧

测试测测测吧

2026/7/10 14:51:39

bRPC深度架构解析:从C++高性能RPC框架到百万级并发实战优化

bRPC深度架构解析:从C++高性能RPC框架到百万级并发实战优化

2026/7/10 16:31:43

bRPC深度架构解析:从C高性能RPC框架到百万级并发实战优化 【免费下载链接】brpc brpc is an Industrial-grade RPC framework using C Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recom…

newapi签到 - 青龙面板自动签到脚本

newapi签到 - 青龙面板自动签到脚本

2026/7/10 16:31:43

newapi自动签到、获取额度。工具类平台的签到和任务每天都能获取资源和权益,但手动操作效率低。这款自动脚本帮你轻松完成日常任务。功能介绍 「newapi签到」脚本支持以下功能: • 自动签到 • 自动完成任务 • 多账号管理 • 结果通知 使用方法 1. 下载…

gphotos-uploader-cli与官方工具对比:为什么选择命令行解决方案

gphotos-uploader-cli与官方工具对比:为什么选择命令行解决方案

2026/7/10 16:31:43

gphotos-uploader-cli与官方工具对比:为什么选择命令行解决方案 【免费下载链接】gphotos-uploader-cli Command line tool to mass upload media folders to your google photos account(s) (Mac OS / Linux) 项目地址: https://gitcode.com/gh_mirrors/gp/gphot…

为什么你的Notion知识库始终“死气沉沉”?——ChatGPT深度集成后,知识复用率提升317%的底层逻辑

为什么你的Notion知识库始终“死气沉沉”?——ChatGPT深度集成后,知识复用率提升317%的底层逻辑

2026/7/10 16:31:43

更多请点击: https://intelliparadigm.com 第一章:为什么你的Notion知识库始终“死气沉沉”? 你精心搭建的Notion知识库,页面排版精美、数据库结构清晰、图标色彩协调——可半年过去,它却像一座被遗忘的数字博物馆&am…

如何用kill-doc实现一键下载30+文档平台:新手5分钟终极指南

如何用kill-doc实现一键下载30+文档平台:新手5分钟终极指南

2026/7/10 16:31:43

如何用kill-doc实现一键下载30文档平台:新手5分钟终极指南 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为…

sVim黑名单功能详解:如何在特定网站禁用快捷键

sVim黑名单功能详解:如何在特定网站禁用快捷键

2026/7/10 16:21:43

sVim黑名单功能详解:如何在特定网站禁用快捷键 【免费下载链接】sVim Safari extension with shortcuts similar to Vim 项目地址: https://gitcode.com/gh_mirrors/sv/sVim sVim是一款为Safari浏览器设计的Vim风格快捷键扩展,让用户能够在浏览器…

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南

2026/7/9 19:40:56

解锁AMD Ryzen处理器深层性能:SMU Debug Tool完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gi…

6个月转型AI工程师:实战路径与核心技能

6个月转型AI工程师:实战路径与核心技能

2026/7/9 18:28:30

1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公…

YOLOv5模型剪枝与量化实战:边缘设备部署优化

YOLOv5模型剪枝与量化实战:边缘设备部署优化

2026/7/10 6:57:56

1. 项目背景与核心价值在计算机视觉领域,YOLOv5因其出色的实时检测性能成为工业界宠儿。但当我们尝试将其部署到边缘设备(如树莓派、Jetson Nano或手机终端)时,立刻会遇到两个致命问题:模型体积庞大(原始YO…

终极原神FPS解锁器完整指南:轻松突破60帧限制

终极原神FPS解锁器完整指南:轻松突破60帧限制

2026/7/10 0:00:42

终极原神FPS解锁器完整指南:轻松突破60帧限制 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 原神FPS解锁器是一款专为《原神》玩家设计的开源工具,通过先进的Wri…

YesPlayMusic:如何用高颜值播放器重塑你的网易云音乐体验?[特殊字符]

YesPlayMusic:如何用高颜值播放器重塑你的网易云音乐体验?[特殊字符]

2026/7/10 0:00:42

YesPlayMusic:如何用高颜值播放器重塑你的网易云音乐体验?🎵 【免费下载链接】YesPlayMusic 高颜值的第三方网易云播放器,支持 Windows / macOS / Linux :electron: 项目地址: https://gitcode.com/gh_mirrors/ye/YesPlayMusic…

从零实现红黑树:手写C++的set与map容器

从零实现红黑树:手写C++的set与map容器

2026/7/10 0:00:42

1. 项目概述:从STL容器到自研轮子在C的日常开发中,std::set和std::map是我们再熟悉不过的伙伴了。它们一个负责管理不重复的集合,一个负责维护键值对映射,底层都依赖一颗高效的红黑树来保证数据的有序性和操作的性能。但你是否曾想…