Gerrit 是什么 Gerrit 和 GitCode MR(Merge Request) 核心区别

📅 2026/6/27 4:00:21
Gerrit 是什么 Gerrit 和 GitCode MR(Merge Request) 核心区别
一、Gerrit 是什么一句话看懂Gerrit 是华为、谷歌等大厂内部专用的代码审核系统和 GitCode/GitLab/GitHub 这种 MR 平台是同类但规则更严格它有一套专属的评论指令、推送命令业内统称「Gerrit 系统命令」。1、两类 Gerrit 命令① 网页评论指令和你 MR 里/compile类似在变更页面评论框输入斜杠指令触发后台 CI、校验、重跑流水线Gerrit 原生常用/recheck重新执行编译/CI校验对应你现在 GitCode 的/compile/rebase自动变基更新代码/submit审核通过后合入主干/verified 1手动标记编译通过GitCode 社区CANN 仓库借鉴了这套设计所以你在 MR 里发/compile本质就是模仿 Gerrit 的/recheck机制属于同类机器人指令。② 本地 Git 推送专属命令Gerrit 独有普通 Git 直接推origin/masterGerrit 不能直接推主线必须推评审专用虚拟分支# Gerrit 标准提交评审代码命令gitpush origin HEAD:refs/for/masterrefs/for/master是 Gerrit 魔法路径代码先进待审核队列审核全部通过才能合入真实 master杜绝未经审查代码直接进主干。二、为什么华为 CANN 社区会提 Gerrit昇腾、华为内部研发全用 Gerrit 做代码评审开源 GitCode 仓库复用了内部 CI 机器人逻辑所以沿用了/xxx评论指令风格CLA 校验、流水线重跑逻辑完全对齐内部 Gerrit 平台。三、区分清楚你现在的场景不用 Gerrit 本地命令你现在用的是 GitCode开源社区不是内网 Gerrit只需要记住这条评论指令即可打开 MR !496评论输入/compile等价于 Gerrit 的/recheck会重新跑 CLA 校验、代码编译流水线刷新cann-cla/no标签。四、补充Gerrit 和 GitCode MR 核心区别Gerrit以单条Commit为评审单元一次只能改一个提交用git commit --amend更新补丁GitCode/GitLab MR以完整分支为评审单元多条提交都能放一个MR里就是你现在的模式指令互通两边都支持评论区/开头的机器人触发命令逻辑完全一样。回到你当前 CLA 问题的最简操作不用管复杂Gerrit推送CLA页面填你自己能收验证码的真实邮箱完成签署MR页面评论发/compile重跑校验不用去学 Gerrit 的refs/for/master推送命令开源社区不强制这套。MR 全称1. GitCode / GitLab 体系Merge Request中文合并请求含义你把自己分支的代码申请合并到目标主干分支比如 master就是你现在这条 !496 页面。2. 对应 GitHub 同类功能叫 PRPR Pull Request作用和 MR 完全一样只是平台命名不同GitCode、GitLab、Gitee → MRMerge RequestGitHub → PRPull Request补充你场景里的关联你页面链接里merge_requests/496路径里的 merge_requests 就是 MR 的完整单词。CANN 仓库里 !496 就是第496号 Merge Request。