在 CentOS 上使用 GitLab 进行版本控制
一 环境准备与安装
- 准备一台满足最低要求的服务器(建议:2 核 CPU、4 GB 内存、20 GB 磁盘),操作系统建议使用 CentOS 7/8。安装常用依赖并启动服务:
- sudo yum update -y
- sudo yum install -y curl policycoreutils openssh-server postfix
- sudo systemctl enable --now sshd postfix
- sudo firewall-cmd --permanent --add-service=http --add-service=https
- sudo firewall-cmd --reload
- 添加 GitLab 仓库并安装(社区版 CE):
- curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
- sudo EXTERNAL_URL=“http://你的服务器IP或域名” yum install -y gitlab-ce
- 首次配置并启动:
- sudo gitlab-ctl reconfigure
- sudo gitlab-ctl start
- 访问 Web:打开浏览器输入 http://你的服务器IP或域名,按向导设置管理员密码并使用 root 登录。
二 基本配置与 HTTPS
- 修改主配置 /etc/gitlab/gitlab.rb,设置外部访问地址:
- external_url ‘http://你的域名或IP’
- 如需自定义端口或启用 HTTPS,可相应调整 nginx 配置段
- 使配置生效:
- sudo gitlab-ctl reconfigure
- 启用 HTTPS(推荐):
- 准备证书(例如:/etc/gitlab/ssl/gitlab.example.com.crt 与 .key)
- 配置示例:
- external_url “https://gitlab.example.com”
- nginx[‘redirect_http_to_https’] = true
- nginx[‘ssl_certificate’] = “/etc/gitlab/ssl/gitlab.example.com.crt”
- nginx[‘ssl_certificate_key’] = “/etc/gitlab/ssl/gitlab.example.com.key”
- 重新配置:sudo gitlab-ctl reconfigure
- 常用目录(便于排障与备份):
- 主配置:/etc/gitlab/gitlab.rb
- 仓库数据:/var/opt/gitlab/git-data/repositories
- Nginx 配置:/var/opt/gitlab/nginx/conf/gitlab-http.conf
- 服务管理:gitlab-ctl status/restart/reconfigure
三 创建项目与日常版本控制
- 在 Web 界面创建项目(New Project),选择可见性并初始化(如添加 README、.gitignore)。
- 本地克隆、提交与推送(HTTPS 示例,也可用 SSH):
- git clone https://你的域名或IP/用户名/项目名.git
- cd 项目名
- git config user.name “你的姓名”
- git config user.email “你的邮箱”
- echo “# 初始化提交” > README.md
- git add .
- git commit -m “Initial commit”
- git push -u origin master
- 常用 Git 工作流命令:
- 查看状态:git status
- 查看日志:git log --oneline -10
- 分支开发:git checkout -b feature/x
- 合并与推送:git checkout master && git merge feature/x && git push origin master
- 拉取更新:git pull origin master
四 邮件通知与 Docker 部署(可选)
- 邮件通知(SMTP,示例为企业邮箱):
- 在 /etc/gitlab/gitlab.rb 中启用并填写:
- gitlab_rails[‘smtp_enable’] = true
- gitlab_rails[‘smtp_address’] = “smtp.exmail.qq.com”
- gitlab_rails[‘smtp_port’] = 25
- gitlab_rails[‘smtp_user_name’] = “你的邮箱”
- gitlab_rails[‘smtp_password’] = “你的密码”
- gitlab_rails[‘smtp_domain’] = “你的域名”
- gitlab_rails[‘smtp_authentication’] = “plain”
- gitlab_rails[‘smtp_enable_starttls_auto’] = true
- 使配置生效:sudo gitlab-ctl reconfigure
- 使用 Docker 快速部署(适合测试或便携环境):
- 启动容器(将域名/IP 与端口按实际替换):
- sudo docker run --detach
–hostname your.domain.com
–publish 80:80 --publish 443:443 --publish 2222:22
–name gitlab
–restart always
–volume /srv/gitlab/config:/etc/gitlab
–volume /srv/gitlab/logs:/var/log/gitlab
–volume /srv/gitlab/data:/var/opt/gitlab
gitlab/gitlab-ce:latest
- 访问方式与本地安装一致。