会话开头的 git 状态更准了:2.1.321 修复「假干净」与暂存误判
每次启动会话,Claude Code 都会把当前仓库的 git 状态快照交给 Claude,作为它理解「你手头有哪些改动」的起点。2.1.321 修了这份快照里的两个错误。
一、git status 失败时不再显示「干净」
以前如果 git status 本身执行失败(比如仓库锁文件残留、权限问题、safe.directory 限制或 git 版本异常),Claude 拿到的状态会是工作区干净。
这会直接误导后续判断:Claude 可能以为没有未提交改动,放心地切分支、覆盖文件或建议 git checkout。
现在失败时状态会标注为不可用(unavailable),Claude 会知道需要自己再确认,而不是基于错误前提行动。
二、首个文件不再被误报为「已暂存」
另一个问题更隐蔽:状态列表里的第一个文件,即使改动并未 git add,也会被显示成已暂存。这可能让 Claude 在写提交信息或判断要提交哪些文件时出错。2.1.321 已修正。
实用建议
- 会话开始后让 Claude 做 Git 操作前,可以先让它跑一次
git status确认实际状态; - 如果经常看到状态「不可用」,在终端手动运行
git status,排查锁文件(.git/index.lock)或目录归属问题; - 涉及提交和推送的任务,保留权限确认,别把
git push设成免确认。
小结
这两处修复不需要任何配置。它们让 Claude 对仓库现状的「第一印象」更可靠,减少因为状态误判带来的错误 Git 操作。