文件被回退先分清是工具还是并发会话
分诊顺序
- 核对被怀疑的工具是否有写能力。 看脚本本身(有没有
--fix、格式化、checkout、restore)。没有写能力 → 直接排除,不要在这条线上耗时间。 - 看工作区还剩哪些改动、哪些文件同时带着多个来源的 diff。 若一个文件里既有本轮改动、又有别人先前的差异,它就是并发冲突高风险文件。
- 确认是否有并行 session 在改同一批文件(同一 worktree 内的多 session 与跨 worktree 是两种不同情形)。
修复原则:按 hunk 合并,不整文件回滚
- 先暂停所有在改同一批文件的 session,否则边修边被覆盖。
- 找到另一个 session 的目标改动来源,先保存它的 diff/patch。
- 不要
reset整个文件 —— 会把别人的改动一起删掉。正确做法是「按 hunks 合并」:保留别人的改动,再把自己的 patch 重新套上。 - 只碰自己这轮真正改过的文件,不是自己改的文件不动。
- 验证只跑
lint/build,不跑任何带--fix、格式化、checkout、restore的命令 —— 那会再制造一次「文件被改回去」。
可迁移的判断
归因「是谁改的」之前,先确认被怀疑的对象是否具备「改」的能力。 不具备写能力的工具/命令可以直接从嫌疑名单里划掉;剩下能改文件的只有「并发写者」和「你自己」。这条和「先分清平台错误还是应用错误」是同一个动作:先用排除法把不可能的分支砍掉,再在剩余分支里找根因。
相关
- 多Agent协作控制面 —— 并发写冲突是隔离层(一 agent 一 worktree 一 branch)要解决的核心问题
- 先分清平台错误还是应用错误 —— 同为「先分诊再动手」
- 以前能用最近坏了先查自己改了什么 —— 另一条归因顺序