Ubuntu 下使用 GitLab 进行项目分支管理
一 基础准备
- 安装与启动:在 Ubuntu 上安装 GitLab CE,修改 /etc/gitlab/gitlab.rb 的 external_url,执行 sudo gitlab-ctl reconfigure 使配置生效,并用 sudo gitlab-ctl start/status 管理服务。
- 客户端准备:安装 Git,配置全局身份 git config --global user.name/email;建议配置 SSH 密钥(如 ssh-keygen -t ed25519),将公钥添加到 GitLab 个人 SSH Keys,便于免密推送与拉取。
二 创建与推送分支
- 在 GitLab 界面创建:进入项目 Repository → Branches → New branch,填写 Branch name,选择 Create from(如 main),即可基于指定来源创建分支。
- 用命令行创建与推送:
- 新建并切换分支:git checkout -b feature/x
- 推送并建立上游:git push -u origin feature/x
- 或显式推送:git push origin feature/x:feature/x
以上两种方式(界面与命令行)任选其一即可完成分支创建与远程同步。
三 分支保护与合并流程
- 分支保护:在项目 Repository → Branches → View branch rules → Protected branches 中,设置如 main 为受保护分支,仅允许 Maintainer/Owner 合并或推送,必要时允许 Developer 创建合并请求(通过但不直接推送),以提升代码质量与发布稳定性。
- 合并请求协作:从功能分支向 main 创建 Merge Request(MR),在 MR 中指派评审、关联 Issue、运行 CI/CD、通过后合并并删除源分支(可勾选自动删除)。这是 GitLab 推荐的标准协作方式。
四 查看同步与删除分支
- 查看与同步:查看本地/远程分支 git branch -a;同步远程引用 git remote update origin --prune;拉取更新 git pull origin main;推送变更 git push origin main。
- 删除分支:
- 删除远程分支:git push origin --delete feature/x
- 删除本地分支:git branch -d feature/x
- 也可在 GitLab 项目 Branches 列表中对目标分支点击 Delete 图标进行删除。
五 自动化与 API 管理
- 通过 API 创建分支:获取 Personal Access Token(范围含 api),调用 POST /projects/:id/repository/branches,示例:
- curl 示例:curl -X POST -H “Content-Type: application/json” -H “Authorization: Bearer ” -d ‘{“branch”:“new-branch”,“ref”:“main”}’ “https://gitlab.example.com/api/v4/projects/<PROJECT_ID>/repository/branches”
- 通过 API 删除分支:调用 DELETE /projects/:id/repository/branches/:branch,示例:
- curl 示例:curl --request DELETE --header “PRIVATE-TOKEN: ” “https://gitlab.example.com/api/v4/projects/<PROJECT_ID>/repository/branches/”
- 适用场景:自动化环境搭建、脚本化初始化仓库与分支、与内管平台集成等。