关于 git-hunk
git-hunk 是用于将工作区更改拆分为聚焦提交的命令行工具和工作流。开发者可通过基于内容的 ID 查看、暂存、取消暂存或丢弃整块或部分更改。
主要功能
- 01列出并查看更改块
- 02按 ID 或行范围暂存更改
- 03取消暂存或丢弃选定更改
- 04按文件路径或状态筛选输出
- 05使用稳定的内容型更改块 ID
适用场景
- 01将无关编辑拆分为聚焦提交
- 02从较大的更改中仅暂存指定行
- 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)
工作流
git-hunk list— 查看所有代码块(文件、ID、增减统计)。不显示差异。- 如果代码块标题不够清晰,则运行
git-hunk show [<id>...](不带参数时显示全部)。 - 暂存前先规划提交。对于每个计划的提交,列出代码块 ID(部分代码块则使用
-l指定行范围)。单个代码块可能需要拆分到多个提交中。如果分组不明确,请询问用户。 - 暂存并提交每组:
git-hunk stage <id1> <id2> ... git commit -m "<type>: <description>" - 再次运行
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