用途:在 GitLab 团队流程中,当需要为某个应用部署 QA、但 main → builds/dev/<app> 无法 fast-forward 时,负责解决冲突并完成同步。它只处理 main → builds/dev/<app> 这一方向;release → builds/prod、cut release、cherry-pick hotfix 等不在范围内。
主要能力:列出仓库中所有 builds/dev/* 分支;检测某应用是否需要同步;从 main 创建临时分支 sync/main-to-dev-<app>,合并目标分支以暴露冲突;按规则解决冲突(逻辑代码保留 main,QA 专用配置保留目标分支);提交并推送后创建 MR;支持一次同步多个应用(逐个串行处理,不共用分支);提供 build hygiene 审计,发现直接提交到 builds/dev/* 的违规提交。
使用方式:常用触发语包括 list build branches、sync main to dev-<app>、sync main to dev-all、kiểm tra build hygiene。核心命令为 git fetch --all --prune、git ls-remote --heads origin "refs/heads/builds/dev/*"、git checkout -b sync/main-to-dev-<app>、git merge origin/builds/dev/<app>、git checkout --ours/--theirs <file>、git add、git commit,以及 glab mr create --source-branch sync/main-to-dev-<app> --target-branch builds/dev/<app> --remove-source-branch。需要 git 和 glab(GitLab CLI)。
限制与安全规则:代码只单向从 main 流向 builds/dev/<app>;禁止直接提交 builds/dev/,禁止 builds/dev/ → main 的 MR,禁止 feature/* 直接合并到 builds/dev/;禁止对 main、builds/dev/ 使用 git push --force;禁止用 git merge --strategy=ours 伪造解决;不确定冲突归属时必须询问用户;sync 分支为临时分支,MR 合并后删除。push 和创建 MR 前需用户确认。
适用场景:monorepo 多应用、每个应用有独立 builds/dev/<app> 部署分支、需要定期同步 main 到 QA 部署分支并处理冲突的团队。
暂未提供:具体安装步骤、版本要求、收费与平台支持信息。