git-dirty-check

Polar Sponsor
爱发电 赞助
.NET 9.0

对本地 Git 工作树进行只读整理,汇总未提交变更并给出保守风险标记。用于用户询问…的变更。

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 摘要时,此技能最为实用。

工作流

  1. 确认目标路径位于 git 仓库内部。
  2. 若目标路径不在 git 仓库中,则立即中止并明确说明。
  3. 使用 git status 和 git diff --stat 等只读命令收集仓库状态。
  4. 将变更条目按以下四类分组:
    • 已暂存(staged)
    • 未暂存(unstaged)
    • 未跟踪(untracked)
    • 冲突(conflicted)
  5. 主要依据文件路径与文件名应用保守风险标记。
  6. 仅当文件名与 diff-stat 数据不足以判定是否应启用某项风险标记,且该文件未命中“含密钥特征的文件规则”时,才对 diff 内容进行检查。
  7. 按下方定义的固定顺序返回输出结果。

优先使用的命令

仅使用只读命令。

推荐命令:

  • 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 个
  • 条目命中含密钥特征的文件名模式

不得过度解读,避免做出推测性的影响声明。

输出顺序

始终按以下**精确顺序**返回各节内容:

  1. Repo state
  2. Changed files by category
  3. Risk flags
  4. Suggested next checks
  5. 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 场景,不覆盖通用仓库管理功能

相关专题

更多
git怎么对比两个版本的文件内容
git怎么对比两个版本的文件内容

要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.09

2281

6

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.09

2517

7

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

2023.07.24

714

5

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

2023.07.06

1260

6

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

2023.07.05

3859

9

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

2026.10.16

0

10

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

2026.10.16

0

10

OpenJDK怎么部署Java应用
OpenJDK怎么部署Java应用

Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。

2026.10.16

0

10

Revel框架模板渲染与表单验证
Revel框架模板渲染与表单验证

本专题围绕Revel框架视图层开发,介绍模板语法、变量输出、布局复用、表单提交、参数绑定与验证规则,帮助开发者完成安全规范的页面交互。

2026.10.16

0

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
vscode手册
vscode手册

共0课时 | 0人学习

Git 教程
Git 教程

共21课时 | 8万人学习

Git版本控制工具
Git版本控制工具

共8课时 | 1.9万人学习