首页/开发/Git 与协作速查/git rerere forget 清理错误记录
合并变基与冲突71 条

git rerere forget 清理错误记录

当某文件的冲突解决方式被错误记录后,用 rerere forget 删除对应缓存,让下一次冲突回到手工判断。

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

rerere forget 是什么

git rerere forget 删除指定路径的 rerere 记录:当某次冲突的解决方式被错误记住后,用它清掉缓存,让下一次同类冲突回到人工判断。执行时需要处于冲突状态且该路径确实有记录,否则提示 nothing to forget。它只删记录,不改变当前工作区内容。

基本信息

用途删除指定路径的 rerere 记录
语法git rerere forget <路径>
前提当前处于冲突状态且该路径有已记录结果
相关命令git rerere status 看跟踪路径;git rerere diff 看记录解法
存储.git/rr-cache 目录下按冲突指纹存放

典型使用场景

  • 方案变更:评审后决定换一种解法,旧记录要先删
  • 误确认纠正:不小心把半成品解决记了下来,立即 forget
  • 冲突演练:重放冲突验证记录是否命中,用 forget 重置状态
  • 记录污染排查:症状怪异时查看跟踪清单是否积累异常
  • 共享环境交接:.git 目录共用时先核对记录归属再清理

常用示例

常用示例
git rerere status            # 查看正在跟踪的冲突路径
git rerere diff              # 查看记录解法与工作区的差异
git rerere forget src/app.js # 删除该路径的错误记录
git status --short           # 确认工作区状态未受影响

删与不删的判断

场景动作原因
解决方式被评审否定forget 后重解避免下次继续套用旧解法
记录是半成品forget 后完整解决半成品会被复用成坏结果
只想查看rerere status 与 diff先看清记录再决定
提示 nothing to forget核对路径与冲突状态路径与状态都要匹配
共享 .git 目录时清理会影响他人复现:团队共用工作区的场景先确认缓存归属再操作,不确定时先在副本仓库里验证。
与自动更新的关系:开了 autoupdate 的仓库里错误记录会被立即复用,发现异常解法越早 forget 越好。

易错点

  • 记录删了当前冲突没解决:forget 不改变工作区,该冲突仍要按正常流程处理
  • 共享 .git 误伤他人:别人依赖同一记录复现历史,清理前先确认归属
  • 删掉后不复核:重解一次并确认新记录正确,避免下次合并又命中旧的错误状态
  • 路径拼错:提示 nothing to forget 时先跑 git rerere status 拿到准确路径再操作
  • 把 forget 当回滚手段:它只影响记录,已提交或已暂存的内容不会退回,回滚要用 git 的还原命令

数据来源与参考

  • Git 官方文档:git-rerere(forget)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌