温馨提示×

ubuntu gitlab 怎样进行团队协作

小樊
42
2025-12-08 21:29:58
栏目: 智能运维

Ubuntu 上用 GitLab 进行团队协作的实操指南

一 环境与安装

  • 准备一台 Ubuntu 服务器,安装依赖:curl、openssh-server、ca-certificates、tzdata、perl(可选:postfix 用于邮件通知)。
  • 添加 GitLab 仓库并安装(以社区版为例,亦可安装 gitlab-ee):
    • 安装依赖:sudo apt-get update && sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
    • 添加仓库并安装:curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
    • 安装:sudo apt-get install -y gitlab-ce
  • 配置外部访问地址(编辑 /etc/gitlab/gitlab.rb):external_url ‘http://your-domain-or-ip’
  • 初始化并启动:sudo gitlab-ctl reconfigure && sudo gitlab-ctl status
  • 首次登录:访问 external_url,初始管理员密码在 /etc/gitlab/initial_root_password(首次登录后尽快修改并妥善保管)。

二 团队协作流程

  • 创建项目与成员邀请
    • 登录 → New project → 选择 Create blank project → 填写项目名与可见性(Private/Internal/Public)→ 创建后获取项目地址(如:git@your-gitlab:group/project.git)。
    • 项目 → Members → 邀请成员并分配角色(如:Guest、Reporter、Developer、Maintainer、Owner),不同角色对应不同权限。
  • 本地克隆与分支开发
    • 克隆仓库:git clone git@your-gitlab:group/project.git
    • 配置身份:git config --global user.name “Your Name”;git config --global user.email “you@example.com”
    • 开发流程:git checkout -b feature/x;编辑 → git add . → git commit -m “feat: xxx” → git push origin feature/x
  • 代码评审与合并
    • 在 GitLab 项目页 → Merge RequestsNew Merge Request → 选择源分支与目标分支(如:feature/x → main)→ 填写标题与描述 → 指派评审人并关联 Issue
    • 评审与讨论 → 通过 Pipeline(如有)→ 点击 Merge 合并 → 可删除已合并的远程分支。
  • 议题与里程碑管理
    • 使用 Issue 跟踪任务/缺陷,配合 Milestone 做迭代计划;在 MR 中通过 Closes #123 自动关闭关联议题。

三 权限与分支策略

  • 权限建议
    • Guest:仅查看;Reporter:查看与克隆;Developer:推送分支、创建 MR、运行 CI;Maintainer:合并、保护分支管理、环境管理;Owner:群组与账单管理。
  • 分支策略示例
    • 长期分支:main/develop;特性分支:feature/;修复分支:hotfix/;发布分支:release/
    • 保护关键分支(如 main):仅 Maintainer 可合并;开启 Require merge requestRequire approvalRequire status checks to passDelete source branch when merge request is accepted 等策略,确保质量门槛与可追溯性。

四 CI/CD 自动化协作

  • Runner 与流水线
    • Settings → CI/CD → Runners 注册 GitLab Runner(可用 Shell/ Docker 等执行器),为项目启用共享或特定 Runner。
    • 在仓库根目录创建 .gitlab-ci.yml,定义构建、测试、部署流程;推送代码后自动触发 Pipeline,在 MR 中展示结果,未通过时阻止合并。
  • 常用实践
    • 静态检查与单元测试为必选关卡;合并前要求 Pipeline 成功;按分支/环境区分部署作业;产物与部署权限受保护,避免越权发布。

五 邮件通知与常用配置

  • 邮件通知(SMTP)
    • 编辑 /etc/gitlab/gitlab.rb 启用并配置 SMTP(示例):
      • gitlab_rails[‘gitlab_email_enabled’] = true
      • gitlab_rails[‘gitlab_email_from’] = ‘noreply@your-domain.com’
      • gitlab_rails[‘smtp_enable’] = true
      • gitlab_rails[‘smtp_address’] = “smtp.your-provider.com”
      • gitlab_rails[‘smtp_port’] = 587
      • gitlab_rails[‘smtp_user_name’] = “your_username”
      • gitlab_rails[‘smtp_password’] = “your_password”
      • gitlab_rails[‘smtp_domain’] = “your-domain.com”
      • gitlab_rails[‘smtp_authentication’] = “login”
      • gitlab_rails[‘smtp_enable_starttls_auto’] = true
      • gitlab_rails[‘smtp_tls’] = true
    • 使配置生效:sudo gitlab-ctl reconfigure
  • 常用维护
    • 查看服务状态:sudo gitlab-ctl status;重启:sudo gitlab-ctl restart;备份:sudo gitlab-backup create(建议定期备份并异地保存)。

0