返回顶部
c

commit-tidy提交整理

Analyze staged/committed changes and recommend splitting or squashing strategy. Use when the user says "commit split", "split commits", "should I split this commit", "squash commits", "tidy commits", or when reviewing large changesets before committing.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 0.1.1
安全检测
已通过
134
下载量
免费
免费
1
收藏
概述
安装方式
版本历史

commit-tidy

Commit Tidy

分析已暂存/未暂存的变更,并建议是否拆分为多个提交。

使用场景

  • - 提交大型变更集之前
  • 用户询问我应该拆分这个提交吗?
  • 审查涉及多个文件的变更
  • 确保原子性、可审查的提交

拆分决策标准

需要拆分的情况

  1. 1. 不相关的功能变更
- 功能A + Bug修复B → 2个提交 - UI变更 + API变更(若相互独立)→ 2个提交
  1. 2. 文件分布广泛
- 变更涉及5个以上目录且无共同目的 - 前端 + 后端 + 配置均被修改
  1. 3. 混合变更类型
- 重构 + 新功能 → 2个提交 - 格式化 + 逻辑变更 → 2个提交 - 依赖更新 + 代码变更 → 2个提交
  1. 4. 差异规模过大
- 不相关区域变更超过500行 - 多个组件独立修改
  1. 5. 需要不同审查者
- 变更涉及不同领域专业知识 - 安全敏感 + 常规变更

应保持在一起的情况

  1. 1. 单一逻辑变更
- 功能需要修改多个文件 - 必须保持原子性的重构
  1. 2. 依赖变更
- API变更 + 调用方更新 - 模式变更 + 迁移 + 模型更新
  1. 3. 相关清理
- 功能 + 直接相关的测试 - Bug修复 + 回归测试

合并标准

分析多个提交时,同时建议合并和拆分

需要合并的情况

  1. 1. 相同类型 + 相同目的
- test: A测试 + test: B测试(同一功能的测试)→ 合并为1个 - fix: 拼写错误A + fix: 拼写错误B(同一审查反馈)→ 合并为1个
  1. 2. 自动化代理按循环拆分的提交
- 像Ralph这样的自主代理按循环提交 → 若目的相同则合并 - 示例:循环1中的代理测试,循环2中的OIDC测试 → test: 添加单元测试
  1. 3. 连续的WIP提交
- wip: 进行中 + feat: 完成 → 合并为一个功能提交

不应合并的情况

  1. 1. 不同类型的提交 — 保持test + chore + feat分离
  2. 属于不同PR/问题的提交
  3. 可能需要回滚的独立变更

输出格式(建议合并时)

建议:合并2个提交为1个

之前(2个提交):

  • - 441b966a test(dt): OIDC认证、代理、SSO测试
  • e2b6503a test(dt): OIDC路由测试(登录、回调、我的信息)

之后(1个提交):

  • - test(dt): 添加OIDC认证单元测试

理由:相同类型(test),相同功能(OIDC认证),代理循环拆分

操作说明

第一步:分析变更

bash

检查暂存变更


git diff --cached --stat
git diff --cached --name-only

检查未暂存变更

git diff --stat git status

第二步:分类文件

按以下维度对变更文件分组:

  • - 功能/组件:属于哪个功能?
  • 变更类型:feat、fix、refactor、style、test、docs、chore
  • 目录:变更是局部化还是分散的?

第三步:识别边界

寻找自然拆分点:

  • - 不同的常规提交类型
  • 独立的功能
  • 将测试文件与实现文件分离(如果测试针对不同功能)

第四步:建议拆分策略

提供具体建议:

分析结果

变更文件(N个文件)

  • - src/api/...(3个文件)- API端点
  • src/components/...(2个文件)- UI组件
  • tests/...(2个文件)- 测试

建议:拆分为N个提交

提交1:feat: 添加用户资料API

  • - src/api/user.ts
  • src/api/types.ts
  • tests/api/user.test.ts

提交2:feat: 添加资料UI组件

  • - src/components/Profile.tsx
  • src/components/Profile.css
  • tests/components/Profile.test.tsx

理由

  • - API和UI可以独立运行
  • 每个可由不同审查者审查

第五步:执行拆分(如被要求)

bash

取消所有暂存


git reset HEAD

暂存第一个提交的文件

git add src/api/ tests/api/ git commit -m feat: 添加用户资料API

暂存第二个提交的文件

git add src/components/ tests/components/ git commit -m feat: 添加资料UI组件

快速参考

文件分布启发式

文件数目录数建议
1-51-2通常单个提交
5-10
2-3 | 审查是否需要拆分 | | 10+ | 4+ | 可能需要拆分 |

需要拆分的变更类型组合

组合拆分?
feat + feat(不相关)✅ 是
feat + 相关测试
❌ 否 | | fix + 不相关重构 | ✅ 是 | | refactor + style(相同文件) | ❌ 否 | | chore(deps) + feat | ✅ 是 |

输出格式

分析结果应包括:

  1. 1. 带分类的变更文件列表
  2. 是否需要拆分及原因
  3. 具体的提交拆分计划
  4. 每个提交的建议提交信息
  5. 执行命令(如被要求)

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 commit-tidy-1775924221 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 commit-tidy-1775924221 技能

通过命令行安装

skillhub install commit-tidy-1775924221

下载

⬇ 下载 commit-tidy v0.1.1(免费)

文件大小: 2.68 KB | 发布时间: 2026-4-12 09:32

v0.1.1 最新 2026-4-12 09:32
Version bump with latest improvements

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部