首页/开发/Git 与协作速查/git cherry-pick -x 记录来源
合并变基与冲突71 条

git cherry-pick -x 记录来源

在生成的提交信息末尾附加 (cherry picked from commit <哈希>) 注记,方便追溯来源,是向维护分支回移补丁时的常见要求。

Git 与协作速查开发更新于 2026-10-13

-x 记录来源

-x 是 cherry-pick 的附加选项:在生成提交的信息末尾追加一行来源注记,标明这次改动来自哪一次提交。把修复从主分支回移到稳定分支(backport)时,维护者通常要求带上这条注记,方便日后追溯改动的源头与影响范围。

基本信息

用途在提交信息中标注来源提交
语法git cherry-pick -x <提交>
典型场景把修复从主分支回移到稳定分支
影响范围只改提交信息,不改文件内容

典型使用场景

  • 向稳定分支回移安全修复时标明来源,满足维护流程要求
  • 多版本并行维护时,核对某处改动是否已经回移到各分支
  • 线上问题定位时,从回移提交反查原始修复
  • 上游项目要求补丁带来源注记时按规范提交
  • 同一修复需要在多个维护分支落地,保留统一的来源线索

常用示例

常用示例
git cherry-pick -x 3f6a2b1             # 生成提交并附加来源注记
git log -1 --format=full                # 查看完整提交信息中的注记行
git cherry-pick -x --no-commit 3f6a2b1  # 先只落改动,人工确认后再提交
git cherry-pick -x -e 3f6a2b1           # 提交前编辑信息,补充回移原因

选项读法

项作用说明
-x附加来源注记只影响提交信息
--no-commit只应用改动不提交便于人工调整后再提交
-e提交前编辑信息可补充回移原因与影响范围
来源注记对跨版本追溯很有价值,但从私有分支向公开仓库拣选之前,要确认原提交信息里没有不宜公开的内部引用。
注记里记录的是源仓库的提交哈希,这个提交在目标仓库里通常并不存在,评审时不要把它当成可以直接打开的链接。跨仓库回移时更实用的做法是同时在正文里写清问题编号,方便按编号检索。
回移之后建议顺手核对目标分支上是否已有同类修复,重复回移同一问题时,多份来源注记会让追溯变得更绕而不是更清晰。

易错点

  • -x 只加注记不改内容,若原提交信息里含内部链接等敏感引用,公开前要清理
  • 来源哈希指向的提交在目标仓库中通常不存在,评审时别把它当作可点击引用
  • 回移之后源提交又被修改,注记指向的仍是旧提交,需要重新回移或在说明中补充
  • 从私有分支向公开仓库拣选时未检查原提交信息,可能连带泄露内部信息

数据来源与参考

  • Git 官方文档:git-cherry-pick(-x)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌