git- dirty- check. 用于总结本地寄存器中未承诺的更改的狭义 git 技能
功能概述
git- dirty- check. 用于总结本地寄存器中未承诺的更改的狭义 git 技能是一项面向实际任务的技能,主要用于它分组了已显示、 未显示、 未跟踪和冲突条目, 应用了保守路径和文件。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
核心要点
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
结果检查与注意事项
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
git-dirty-check
一项专注的 git 技能,用于汇总本地仓库中未提交的变更。它将已暂存(staged)、未暂存(unstaged)、未跟踪(untracked)和冲突(conflicted)的条目分组,基于路径与文件名应用保守的风险标记,并在不修改仓库状态的前提下,建议最多三项后续检查操作。
git-dirty-check 是一项刻意设计为高度专注的技能,仅完成一个任务:理解本地 git 仓库当前未提交的状态。
它不会尝试管理分支、撰写提交信息、解决冲突、审查 pull request,也不会充当通用的 git 助手。相反,它提供一份紧凑、结构化的当前工作树初步评估(triage),涵盖以下方面:
- 仓库状态(repo state)
- 按类别归类的变更条目
- 主要基于路径、文件名及 diff 统计信息的保守风险标记
- 若干可直接复制粘贴执行的后续检查命令
- 当细节因限制或敏感性而被截断时,明确说明遗漏项
该技能为只读操作。其设计目标是服务于开发者在提交前、交接前或本地审查前快速获取运行态摘要,无需授予写入权限,亦不触发更广泛的仓库辅助行为。
它还对深度检查施加了严格限制:
- 若目标路径不在 git 仓库内,则立即失败
- 分支元数据为可选字段
- 深度 diff 检查设有上限
- 含密钥特征的文件名模式仅在文件名层级进行处理
当原始 git 输出在技术上已足够,但人工解析效率低于一份稳定、结构化的 triage 摘要时,此技能最为实用。
工作流
- 确认目标路径位于 git 仓库内部。
- 若目标路径不在 git 仓库中,则立即中止并明确说明。
- 使用
git status 和 git diff --stat 等只读命令收集仓库状态。
- 将变更条目按以下四类分组:
- 已暂存(staged)
- 未暂存(unstaged)
- 未跟踪(untracked)
- 冲突(conflicted)
- 主要依据文件路径与文件名应用保守风险标记。
- 仅当文件名与 diff-stat 数据不足以判定是否应启用某项风险标记,且该文件未命中“含密钥特征的文件规则”时,才对 diff 内容进行检查。
- 按下方定义的固定顺序返回输出结果。
优先使用的命令
仅使用只读命令。
推荐命令:
git rev-parse --show-toplevel
git rev-parse --abbrev-ref HEAD
git status --short
git diff --stat
git diff --cached --stat
深度 diff 检查仅可在深度检查上限范围内进行,且仅适用于未命中“含密钥特征的文件规则”的文件。
快速失败规则(Fail-Fast Rule)
若目标路径不在 git 仓库中:
- 立即中止
- 报告该路径并非 git 仓库
- 不得继续执行通用文件系统分析
分支处理
分支名称仅为可选元数据。
若可通过推荐的只读命令获取分支名,则将其包含在“Repo state”中;
若在有效仓库中无法获取 HEAD 或分支名查询失败,则静默省略分支元数据,不报错;
不提供任何关于分支的建议。
深度 diff 检查上限
深度 diff 检查为可选操作,且必须保持高度受限。
硬性限制:
- 最多检查 3 个文件
- 每个文件最多检查 40 行
- 对含密钥特征的文件,绝不超出文件名层级进行检测
仅当文件未命中“含密钥特征的文件规则”,且文件名与 diff-stat 数据不足以判定或排除某项已列出的风险标记时,才启用深度 diff 检查。
含密钥特征的文件规则(Secret-Bearing File Rule)
对匹配以下含密钥特征文件名模式的文件,仅做文件名层级处理。
示例:
.env
.env.*
*.pem
*.key
id_rsa
id_ed25519
secrets.*
对上述文件:
- 不检查 diff 内容
- 不打印任何值
- 仅报告该条目命中了含密钥特征的文件名模式
保守风险启发式规则(Conservative Risk Heuristics)
风险标记须保持保守,且主要基于路径与文件名判断。
标记示例:
- 依赖清单文件(dependency manifest)已变更
- 锁文件(lockfile)已变更
- 清单文件变更但锁文件未变更
- 锁文件变更但清单文件未变更
- CI 或工作流文件已变更
- 疑似部署或基础设施相关文件已变更
- 疑似认证或安全相关文件已变更
- 疑似迁移或数据库 schema 文件已变更
- 变更路径数量超过 10 个
- 条目命中含密钥特征的文件名模式
不得过度解读,避免做出推测性的影响声明。
输出顺序
始终按以下**精确顺序**返回各节内容:
- Repo state
- Changed files by category
- Risk flags
- Suggested next checks
- Unknowns or omitted detail
输出规范
保持响应简洁、结构清晰。
1. Repo state
包含以下内容:
- 仓库根目录(repo root)
- 分支名称(仅作为可选元数据)
- 已暂存、未暂存、未跟踪、冲突文件的数量统计
2. Changed files by category
在以下四类下分别列出条目:
- staged
- unstaged
- untracked
- conflicted
若某类条目 ≤10 个,则全部直接列出;否则仅列出前 10 个,并对剩余条目作概括说明。
3. Risk flags
仅列出由文件名、路径、diff 统计信息,或经严格限制的非敏感 diff 样本所支持的保守风险标记。
4. Suggested next checks
提供 1 至 3 条可直接复制粘贴执行的命令,优先选用只读命令。
5. Unknowns or omitted detail
明确说明哪些内容被有意跳过检查,例如:
- 因上限限制而省略 diff 内容
- 敏感文件仅检查文件名,未深入内容
- 大型仓库细节仅作概括性呈现
能力边界
严禁执行以下任何操作:
- 修改 git 状态
- 执行
stage、unstage、commit、stash、reset、checkout、merge、rebase 或 push
- 撰写提交信息
- 提供分支策略建议
- 扩展为 PR 审查或通用 git 帮助
- 从 diff 中暴露疑似密钥的值
- 执行网络操作
保持专注。本技能存在的唯一目的是回答:“此处发生了哪些变更?适用哪些保守风险标记?”
触发示例
- “这个仓库里有什么变更?”
- “汇总我当前未提交的变更。”
- “这里有哪些 dirty 变更?”
- “给我一份快速的 git 变更初步评估。”
- “在我提交前,有哪些变更?适用哪些风险标记?”
- “展示这个仓库中已暂存、未暂存与未跟踪的变更。”
非触发示例(Anti-trigger examples)
- “帮我写一条提交信息。”
- “帮我解决这个合并冲突。”
- “审查这个 PR。”
- “撤销我上一次提交。”
- “清理我的分支。”
- “在这个仓库里定位 bug。”
- “重构这些文件。”
- “解释一下 git rebase。”
限制条件
- 仅支持只读操作,不修改任何 git 状态
- 聚焦于当前未提交状态,不涉及历史记录
- 风险标记保守且主要基于路径与文件名
- 密钥检测仅依赖文件名模式,不执行完整密钥扫描
- 深度 diff 检查受到严格限制
- 摘要的实用性取决于仓库内文件命名与目录结构的清晰程度
- 不能替代完整的代码审查或专业的 git 知识
安全说明
- 仅使用只读 git 命令
- 不执行
stage、unstage、commit、stash、reset、checkout、merge、rebase 或 push
- 不执行任何网络操作
- 对非仓库路径立即失败
- 对含密钥特征的文件,绝不超出文件名层级进行检测
- 避免从 diff 中暴露疑似密钥的值
- 输出范围严格限定于 triage 场景,不覆盖通用仓库管理功能