浏览 AI使用教程

git status 怎么看:改代码前先确认工作区变更归属

接手一个已有改动的仓库,第一件事是看清工作区。逐个确认修改归属、生成文件和未跟踪文件,才能避免格式化或回退掉别人的工作。

沿完整工作流推进

前一阶段的可检查结果,是下一阶段的输入;中间证据不足时停在当前阶段。

  1. 01git status 里的 23 个文件,不能默认都属于这次任务
  2. 02先确认这次任务的起点、边界和交付
  3. 03从“读取规则和分支”走到“限制后续编辑”
  4. 04先读两列,再读差异
  5. 05完成后的变更归属清单与安全起点
沿同一任务走到交付

git status 里的 23 个文件,不能默认都属于这次任务

接手项目时 `git status` 有 23 个修改文件。Agent 如果先格式化或恢复,很可能覆盖用户尚未提交的工作;如果全部当成本任务,又无法交付清晰 diff。

  • staged/unstaged/untracked 已区分
  • 每项变更有归属或未知标签
  • 没有执行破坏性恢复命令
本例材料

先确认这次任务的起点、边界和交付

需要确认本例内容
现有材料下面5行构造的git status --short;只拟修改src/search.mjs。修改归属尚需任务记录与diff确认。
不能越过的边界只读确认变更归属;不 reset、checkout 或删除;无法判断的文件先不碰。
要交付的结果变更归属清单与安全起点
处理记录

从“读取规则和分支”走到“限制后续编辑”

当前阶段实际处理
读取规则和分支确认项目贡献规则、当前分支、远端关系和禁止修改区域。
逐文件看状态区分已暂存、未暂存、未跟踪和忽略文件,查看 diff 与最近提交,不只看文件名。
标注变更归属将本次需要、用户已有、生成物和未知改动分开;未知项与任务重叠时先停止确认。
建立安全起点在不覆盖用户改动的前提下选择新分支、补丁、提交或备份,记录恢复方式。
限制后续编辑每轮修改后重看 diff,确保没有格式化或生成命令带来大范围无关变化。

先读两列,再读差异

构造输出

保留开头空格

M  src/pay.mjs
 M src/search.mjs
MM README.md
?? notes.md
UU src/status.mjs
只读命令

不改变暂存区

git status --short
git diff -- src/search.mjs README.md
git diff --cached -- src/pay.mjs README.md
git diff --name-only --diff-filter=U

M空=已暂存;空M=工作树未暂存;MM=两处都有修改;??=未跟踪;UU=双方修改造成未解决冲突。未跟踪内容不在普通diff中,要另行阅读。状态不等于作者归属,文件名也不等于可以清理。

最终输出

完成后的变更归属清单与安全起点

状态表示索引与工作树差异,不能判断作者。先读两种diff,再逐块区分既有修改,不重置未知内容。

常见失败

为什么“任务文件本来就有用户改动”还不能交付

任务文件本来就有用户改动

原因
同一文件存在混合归属
怎么改
逐块阅读 diff,与用户改动叠加而不覆盖;无法安全区分时停下说明
验收方式

变更归属清单与安全起点通过哪些检查才算完成

依据与范围

本页实际使用的资料