用途:在不修改 Git 对象本身、不改变原始 SHA 的前提下,为提交附加额外信息(评审状态、测试结果、质量标注、审计记录等),并在日志中与提交信息一同显示。
主要能力:备注存储在 refs/notes/commits 等 notes ref 中,可用 --ref 建立命名空间(如 reviews、testing、audit)分类管理;支持 add、append、edit、remove、copy、prune、list、show 等操作,也支持在 git log / git show 中展示,--notes='*' 可显示全部命名空间。
使用方式:添加备注用 git notes add -m "message" <sha>,查看用 git notes show <sha>,追加用 git notes append、编辑用 edit、删除用 remove。命名空间写法为 git notes --ref=reviews add -m "Reviewed-by: Alice" abc1234,日志查看 git log --notes=reviews --oneline。跨机器需显式推送与抓取:git push origin refs/notes/reviews、git fetch origin refs/notes/reviews:refs/notes/reviews。变基前可配置 git config notes.rewrite.rebase true 与 git config notes.rewriteMode concatenate 保留备注,也可通过 .gitconfig 的 notes.displayRef 自动显示。合并 notes 支持 manual、ours、theirs、union、cat_sort_uniq 策略。
适用场景:代码评审跟踪、测试结果标注、审计留痕、批量操作(配合 git log 与 xargs)以及团队间共享元数据。
限制与注意:备注默认不会随 push 上传,需显式推送;未指定 ref 时日志可能看不到对应备注;rebase 后可能丢失备注,除非开启重写保留;已存在同名备注需用 -f 覆盖或改用 append。具体完整选项以官方 git notes 文档为准,本资料未提供收费、平台支持或性能数据。