You need to enable JavaScript to run this app. 如何高效使用Gerrit的Follow Up功能?使用时机及实操示例咨询
优惠活动
大模型
产品
解决方案
定价
更多

如何高效使用Gerrit的Follow Up功能?使用时机及实操示例咨询

Gerrit Follow Up 功能的核心逻辑

这是Gerrit设计用来打通跨提交溯源链路的原生机制,本质是通过Commit Message的固定格式标记,自动在两个独立Change之间建立双向关联,和我们日常在未合入的Change上push新Patch Set的迭代逻辑完全不同。

高效使用Follow Up的典型场景
  • 原Change已经合入主线,Gerrit默认会锁定已合入的Change,禁止直接push新Patch Set迭代,这时候要补对应改动必须创建独立Change,同时用Follow Up标记关联原改动
  • 原Change处于Abandoned状态,后续重新基于该方向补做功能,需要关联最初的评审记录,避免重复讨论已经被否决过的设计
  • 原Change评审时提出需要拆分独立提交的内容(比如补单测、补文档、拆公共逻辑),拆出来的独立提交需要和主改动建立溯源关系,方便后续追踪整个功能的完整迭代链路
  • 线上问题回溯时,需要把热修复提交和最初引入问题的原Change绑定,减少排查时的链路断裂
端到端实操全流程(零断点版)

实操判断前置:如果原Change状态是Open(未合入),直接走git commit --amend push新Patch Set即可,不需要用Follow Up;Follow Up只适用于两个独立Change之间的关联场景

  • 分支准备
    拉取最新主线代码,基于需要关联的原Change对应的代码基线切新开发分支,避免带无关的提交冲突。对应命令:
    git checkout main && git pull origin main
    git checkout -b fix/avatar-upload-format-check
    
  • 提交关联标记
    完成所有开发内容后,生成带独立Change-ID的提交,在Commit Message里加入固定格式的Follow Up标记,这是Gerrit自动识别关联的唯一依据。
    正确的Commit Message示例:
    fix: add format check for avatar upload interface
    
    Follow Up of I987654321abcdef123456789abcdef12345678
    
    原头像上传接口合入后未校验文件MIME类型,补充白名单校验逻辑,阻止非图片格式文件上传。
    
    注意事项:
    • 标记后的I开头字符串是原Change的全局唯一Change-ID(在原Change详情页顶部可直接复制),不是提交的短哈希
    • 新提交必须使用独立的新Change-ID,如果把新提交的Change-ID改成和原Change一致,会直接变成原Change的新Patch Set,不属于Follow Up场景
  • 常规推送评审
    按照正常流程把新分支push到Gerrit的评审分支即可:
    git push origin HEAD:refs/for/main
    
  • 关联生效验证
    等新Change创建完成后,打开任意一个关联的Change详情页,在侧边栏的Relations区域,就能看到双向的Follow Up关联记录,不需要手动在网页上做额外的关联操作。
常见踩坑规避
  • Follow Up没有独立的网页创建按钮,所有关联都是Gerrit解析Commit Message里的固定格式自动生成的,找不到入口属于正常情况
  • Follow Up关联没有权限门槛,只要Commit Message里标注的原Change-ID真实有效,哪怕原Change是1年前合入的,关联也会自动生成
  • 不要滥用Follow Up标记:两个完全无关的Change如果硬加Follow Up标记,会在关联列表里造成不必要的干扰,只给存在直接逻辑承接关系的Change加标记

内容的提问来源于stack exchange,提问作者ajay kumar tiwari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.03 07:45:03