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 越好。