mcpField
G
git-hunk

git-hunk

github.com/wkentaro开发14136 次安装2 天前更新
代码仓库

关于 git-hunk

git-hunk 是用于将工作区更改拆分为聚焦提交的命令行工具和工作流。开发者可通过基于内容的 ID 查看、暂存、取消暂存或丢弃整块或部分更改。

主要功能

  1. 01列出并查看更改块
  2. 02按 ID 或行范围暂存更改
  3. 03取消暂存或丢弃选定更改
  4. 04按文件路径或状态筛选输出
  5. 05使用稳定的内容型更改块 ID

适用场景

  1. 01将无关编辑拆分为聚焦提交
  2. 02从较大的更改中仅暂存指定行
  3. 03提交前检查已暂存和未暂存内容

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/wkentaro/git-hunk --skill git-hunk

安装后在 Claude Code 中输入/git-hunk确认已加载。

详细介绍

/git-hunk - 将更改拆分为聚焦的提交

需要:uv tool install git-hunk(或 pip install git-hunk)

工作流

  1. git-hunk list — 查看所有代码块(文件、ID、增减统计)。不显示差异。
  2. 如果代码块标题不够清晰,则运行 git-hunk show [<id>...](不带参数时显示全部)。
  3. 暂存前先规划提交。对于每个计划的提交,列出代码块 ID(部分代码块则使用 -l 指定行范围)。单个代码块可能需要拆分到多个提交中。如果分组不明确,请询问用户。
  4. 暂存并提交每组:
    git-hunk stage <id1> <id2> ...
    git commit -m "<type>: <description>"
    
  5. 再次运行 git-hunk list,检查是否有遗漏。

部分代码块

行选择(-l)适用于 stage、unstage 和 discard(需要单个 ID):

  • 包含行:git-hunk stage <id> -l 3,5-7
  • 排除行:git-hunk stage <id> -l ^3,^5-7

修正错误

  • git-hunk unstage <id1> <id2> ... — 将已暂存的代码块移回工作区。
  • git-hunk unstage <id> -l 3,5-7 — 部分取消暂存指定行。
  • git-hunk discard <id1> <id2> ... — 永久丢弃未暂存的代码块(从 HEAD 恢复)。
  • git-hunk discard <id> -l 3,5-7 — 部分丢弃指定行。

git-hunk list 输出示例

unstaged:
labelme/app.py
  c43213b  @@ -78,6 +78,7 @@ _AI_CREATE_MODES  +1
  4da0d77  @@ -1364,6 +1365,19 @@ class MainWindow  +13
labelme/translate/de_DE.qm
  7a3befc  Binary file

说明

  • ID 是基于内容的哈希,在部分暂存后保持稳定,并支持前缀匹配
  • git-hunk list [<file>...] — 按文件路径筛选代码块
  • 使用 --staged / --unstaged 筛选 list 和 show(默认情况下,两者都会搜索已暂存和未暂存的内容)
  • 提供 --json,但通常纯文本输出就足够了
  • 每个提交只包含一项逻辑更改,提交信息采用 Conventional Commits 格式

评论

支持 Markdown