CentOS上GitLab版本控制操作指南
安装依赖包
在CentOS上安装GitLab前,需先安装必要依赖,确保系统支持GitLab运行:
sudo yum install -y curl policycoreutils-python openssh-server postfix
curl:用于下载GitLab安装脚本;policycoreutils-python:用于配置SELinux策略;openssh-server:支持SSH连接(Git远程操作必需);postfix:处理邮件通知(可选,但建议安装)。添加GitLab官方仓库
通过官方脚本添加GitLab YUM仓库,确保能获取最新版本:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
安装GitLab CE(社区版)
使用YUM命令安装GitLab社区版(免费版):
sudo yum install -y gitlab-ce
配置并启动GitLab
/etc/gitlab/gitlab.rb,设置外部访问URL(替换为服务器IP或域名):sudo vim /etc/gitlab/gitlab.rb
# 找到并修改以下行
external_url 'http://your_server_ip'
sudo gitlab-ctl reconfigure # 应用配置
sudo gitlab-ctl start # 启动服务
sudo gitlab-ctl enable # 设置开机自启
访问GitLab Web界面
打开浏览器,输入http://your_server_ip,按照提示设置管理员密码并登录。
创建GitLab项目
登录GitLab后,点击顶部导航栏“New project”,填写项目名称(如my-app)、描述,选择可见性(Private/Private/Internal/Public),点击“Create project”即可创建远程仓库。
克隆远程仓库到本地
在项目页面点击“Clone”按钮,复制SSH或HTTPS地址(推荐SSH,无需每次输入密码):
git clone git@gitlab.com:your_username/my-app.git
cd my-app
本地代码提交与推送
git config user.name "Your Name"
git config user.email "your_email@example.com"
.表示所有修改的文件):git add .
-m后面跟提交说明):git commit -m "Initial commit"
-u设置默认上游分支):git push -u origin main # 若远程分支为master,替换为master
分支管理与合并
feature/login):git checkout -b feature/login
git checkout main
git branch -a
feature/login合并到main):git checkout main
git merge feature/login
git push origin main
git branch -d feature/login # 删除本地分支
git push origin --delete feature/login # 删除远程分支
查看代码历史与回退
git log
git diff
commit_id可通过git log获取):git reset --hard commit_id
git push origin main --force # 强制推送到远程(谨慎使用)
解决合并冲突
当合并分支时出现冲突(Git会标记<<<<<<<、=======、>>>>>>>),需手动编辑冲突文件,删除冲突标记并保留正确代码,然后执行:
git add .
git commit -m "Resolve merge conflict"
git push origin main
添加团队成员
登录GitLab,进入项目→“Settings”→“Members”,点击“New member”,输入成员用户名或邮箱,选择角色(Owner/Admin/Developer/Reporter/Guest),点击“Invite”即可添加。
使用Merge Request(MR)
feature/login)和目标分支(如main),填写MR标题和描述,点击“Create merge request”。配置CI/CD流水线
.gitlab-ci.yml文件,定义CI/CD流程(如构建、测试、部署):stages:
- test
- deploy
test_job:
stage: test
script:
- echo "Running tests..."
- npm test # 示例:运行npm测试
deploy_job:
stage: deploy
script:
- echo "Deploying to production..."
- scp -r . user@server:/var/www/html # 示例:部署到服务器
only:
- main # 仅在main分支推送时触发
问题追踪(Issues)
在项目页面点击“Issues”,点击“New issue”,填写问题标题、描述,分配给团队成员,设置截止日期,点击“Create issue”即可创建任务。团队成员可通过评论功能讨论问题,更新问题状态。
gitlab-backup命令定期备份项目数据,防止数据丢失。