温馨提示×

Linux环境下GitLab如何协作

小樊
39
2025-12-20 12:52:25
栏目: 智能运维

Linux环境下 GitLab 团队协作全流程

一 环境与账号准备

  • 安装与启动 GitLab(两种常见发行版示例)
    • Ubuntu/Debian:
      • 安装依赖与仓库:sudo apt update && sudo apt install -y curl openssh-server ca-certificates tzdata perl
      • 添加仓库并安装:curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
      • 设置外部地址并安装:sudo EXTERNAL_URL=“http://gitlab.local” apt install -y gitlab-ee
      • 初始化:sudo gitlab-ctl reconfigure && sudo gitlab-ctl status
    • CentOS/RHEL:
      • 安装依赖:sudo yum install -y curl policycoreutils-python openssh-server postfix
      • 安装 GitLab CE:sudo yum install -y gitlab-ce
      • 初始化:sudo gitlab-ctl reconfigure
  • 首次登录与密码
    • 若为新装实例,初始 root 密码位于:/etc/gitlab/initial_root_password(首次登录后建议尽快修改并妥善保管)。
  • 客户端准备
    • 安装 Git:sudo apt install -y git 或 sudo yum install -y git
    • 配置全局身份:git config --global user.name “Your Name”;git config --global user.email “you@example.com”
    • 配置 SSH 免密(推荐):ssh-keygen -t rsa -b 4096 -C “you@example.com”,将 ~/.ssh/id_rsa.pub 内容添加到 GitLab 个人设置中的 SSH Keys,之后可使用 SSH 地址进行克隆与推送。

二 项目与权限配置

  • 创建项目与可见性
    • 登录 Web → New project → 选择 Create blank project → 填写项目名称、描述,设置可见性为 Private/Internal/Public → 可选择用 README 初始化仓库。
  • 成员与角色
    • 项目 → Members → 邀请成员并分配角色:Guest / Reporter / Developer / Maintainer / Owner,不同角色对应不同权限(如开发者可提交与分支管理,维护者可管理设置与合并,所有者可转让项目等)。
  • 组与项目结构
    • 建议按业务线创建 Group,在组内创建项目,成员加入组后继承相应权限,便于统一治理与授权。
  • 分支保护
    • 项目 → Settings → Repository → Protected branches → 对 main/master 等保护分支设置:仅 Maintainer/Owner 可推送与合并,开启 Require merge request、可选 Require approvalsDelete source branch 等策略,避免误改与绕过评审。

三 日常协作流程

  • 克隆与分支
    • 克隆仓库:git clone git@gitlab.local:team/my-webapp.git
    • 创建功能分支:git checkout -b feature/login
  • 开发与提交
    • 本地开发后:git add .;git commit -m “feat(login): add login form”
    • 推送分支:git push origin feature/login(首次推送可 git push --set-upstream origin feature/login)
  • 代码评审与合并
    • Web → Merge Requests → New → 源分支选 feature/login,目标分支选 develop/main → 指派评审人、设置标签与里程碑 → 提交评审
    • 评审通过后合并,可删除已合并的源分支(可在 MR 中勾选自动删除)
  • 关联任务与自动关闭
    • 在 MR 描述或提交信息中使用关键字关联:如 Fixes #123,合并后自动关闭 Issue #123
  • 同步与更新
    • 定期拉取上游变更:git pull origin develop;必要时 rebase 保持提交历史整洁(团队内统一规范)。

四 分支策略与规范建议

  • 常用 Git 分支模型
    • main/master:生产基线;develop:集成开发分支
    • feature/:新功能;bugfix/:修复缺陷;release/:发布准备;hotfix/:紧急线上修复
  • 协作要点
    • 所有功能与修复从 develop/main 拉出,通过 Merge Request 提交评审
    • 保护关键分支,强制 MR + 审批;必要时启用 流水线成功 作为合并条件
    • 提交信息遵循约定(如 Conventional Commits),便于生成变更日志与自动化发布。

五 CI/CD 自动化与 Runner

  • 基本流水线
    • 在项目根目录创建 .gitlab-ci.yml,定义 stages 与 jobs,例如:
      • stages: - build - test - deploy
      • build_job: stage: build script: - npm ci && npm run build artifacts: paths: - dist/
      • test_job: stage: test script: - npm test
      • deploy_job: stage: deploy script: - rsync -r dist/ user@server:/var/www/app only: - main
  • Runner 安装与注册
    • 安装 Runner:sudo apt install -y gitlab-runner 或 sudo yum install -y gitlab-runner
    • 注册 Runner:sudo gitlab-runner register → 依次输入 GitLab URL、项目 Registration token、选择 Executor(shell/docker) → 启动:sudo gitlab-runner start
  • 运行与权限
    • 使用 Docker Executor 可实现环境隔离;确保 Runner 主机具备相应构建依赖与部署权限(SSH 密钥或凭据妥善管理)。

0