mcpField
S
smart-git-automation

smart-git-automation

github.com/mskadu开发161 次安装22 周前更新
代码仓库

关于 smart-git-automation

smart-git-automation 是一项用于整理 Git 改动并引导分支、提交、推送及可选 PR 流程的技能。它根据实际改动生成名称和提交信息,并减少确认步骤。

主要功能

  1. 01归类相关文件改动
  2. 02根据改动生成分支名
  3. 03拟定提交信息
  4. 04引导推送及可选 PR 流程
  5. 05避免提交密钥和大型二进制文件

适用场景

  1. 01提交前整理混合改动
  2. 02根据当前改动创建分支名
  3. 03准备提交并检查提交信息
  4. 04推送已提交内容并选择创建 PR

安装

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

$npx skills add https://github.com/mskadu/opencode-agent-skills --skill smart-git-automation

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

附带文件README.md

详细介绍

我的功能

  • 智能检测并归类相关更改
  • 根据更改自动生成描述性分支名称
  • 简化工作流:扫描 → 创建分支 → 提交 → 推送 → 创建 PR,减少提示次数

何时使用我

如果你想要更快速、更智能的 Git 工作流,按逻辑归类更改并减少手动确认,请在这种情况下使用我。

工作流步骤

1. 智能检测与归类

并行运行:

  • git status - 检查有哪些更改
  • git diff --stat - 查看文件修改摘要
  • git diff --name-only - 仅列出已更改的文件
  • git diff --staged --stat - 查看哪些内容已暂存

分析更改并按逻辑归类:

  • 位于同一模块/目录中的文件 → 可能相关
  • 最近编辑时一同修改的文件 → 可能相关
  • 相互补充的新文件 → 可能相关

以清晰的格式展示归类后的更改,例如:

📁 Group 1: UI Components
  - src/components/Button.tsx (modified)
  - src/components/Button.test.tsx (modified)

📁 Group 2: API Layer
  - src/api/client.ts (new)
  - src/api/types.ts (modified)
2. 自动生成分支名称

根据主要更改模式生成分支名称:

  • 使用格式:<type>/<short-description>
  • 类型:feature、fix、refactor、docs、test、chore
  • 根据最重要的已更改文件/功能提炼描述
  • 转换为 kebab-case,最多 50 个字符
  • 示例:
    • feature/add-user-auth(来自身份验证相关文件)
    • fix/login-validation(来自验证相关更改)
    • refactor/api-cleanup(来自 API 重构)

显示建议的分支名称,并请求用户输入一个词确认(或输入其他名称)。

3. 简化分支与提交
  • 如果当前不在 main/master 分支上:检查当前分支是否与建议的名称一致
    • 如果一致:留在当前分支
    • 如果不一致:询问是否切换分支或创建新分支
  • 创建分支:git checkout -b <branch-name>
  • 暂存更改:git add <grouped-files>
  • 根据更改自动生成提交消息:
    • 第一行:<type>: <short description>(最多 72 个字符)
    • 正文:归类后的文件更改及简短说明
  • 使用生成的消息提交,并先显示预览
  • 请求用户输入一个词确认后继续
4. 推送与可选的 PR
  • 提交后询问:“推送到远程仓库?(yes/no/abort)”
  • 如果回答 yes:git push -u origin <branch-name>
  • 然后询问:“创建 PR?(yes/no)”
  • 如果回答 yes:
    • 检查远程仓库:git remote -v
    • 如果是 fork:使用 fork 的远程仓库(例如 mskadu/repo-name)
    • 根据提交消息自动生成 PR 描述
    • 使用 gh pr create,并设置:
      • 标题:使用分支名称
      • 正文:更改摘要 + 文件分类 + 后续说明

重要规则

  • 自动归类相关文件,但允许用户调整
  • 根据实际更改生成分支名称,不要询问用户要取什么名称
  • 减少确认步骤:请求用户输入一个词,或仅设置单个确认节点
  • 绝不提交机密、凭据或大型二进制文件
  • 创建 PR 前检查 GitHub 仓库是否存在
  • 用户在任何时候回答“no”时,跳过 PR 步骤
  • 如果分支已存在且有更改,提供修改现有提交或新增提交的选项

评论

支持 Markdown