返回全部 Skills

smart-git-automation

开发工具

智能变更检测、自动分支命名和精简的提交/PR工作流

12

下载量

AI SkillHub 能力展示图

安装方式

命令行安装

在项目根目录执行以下命令,完成 Skill 安装。

npx bzskills add sickn33/antigravity-awesome-skills --skill smart-git-automation

skill.md

name: smart-git-automation
version: 1.0.0
description: 智能变更检测、自动分支命名和精简的提交/PR工作流
risk: critical
source: community
source_type: community
source_repo: mskadu/opencode-agent-skills
license: MIT
license_source: "https://github.com/mskadu/opencode-agent-skills/blob/main/LICENSE"
date_added: "2026-06-05"

我的功能

  • 智能检测并关联分组相关变更
  • 根据变更自动生成描述性分支名称
  • 精简工作流:扫描 → 创建分支 → 提交 → 推送 → 创建拉取请求,只需少量提示

适用场景

当您希望获得更快、更智能的 Git 工作流,能够逻辑分组变更并减少手动确认开销时,可使用此功能。

工作流步骤

1. 智能检测与分组

并行执行:

  • git status - 检查发生了什么变更
  • git diff --stat - 查看文件修改摘要
  • git diff --name-only - 仅列出已修改的文件
  • git diff --staged --stat - 查看已暂存的文件

分析变更并进行逻辑分组:

  • 同一模块/目录下的文件 → 可能相关
  • 在最近编辑中被一起修改的文件 → 可能相关
  • 相互补充的新文件 → 可能相关

以清晰格式呈现分组后的变更,例如:

📁 分组 1:UI 组件
  - src/components/Button.tsx(已修改)
  - src/components/Button.test.tsx(已修改)

📁 分组 2:API 层
  - src/api/client.ts(新增)
  - src/api/types.ts(已修改)

2. 自动生成分支名称

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

  • 格式:<类型>/<简短描述>
  • 类型:featurefixrefactordocstestchore
  • 描述来自最重要的已修改文件/功能
  • 转换为短横线命名(kebab-case),最多 50 个字符
  • 示例:
  • feature/add-user-auth(来自认证相关文件)
  • fix/login-validation(来自验证变更)
  • refactor/api-cleanup(来自 API 重构)

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

3. 精简分支与提交

  • 如果不在 main/master 分支上:检查当前分支是否与提议名称匹配
  • 若匹配:保持不动
  • 若不匹配:询问是否切换或创建新分支
  • 仅在验证分支名称后创建分支,然后使用 git checkout -b "$branch_name"
  • 仅暂存显式的路径规格:git add -- path/to/file ...
  • 如果生成了文件路径,请使用 NUL 分隔(git diff -z --name-only)并将它们作为 pathspec 参数传递。
  • 切勿将不受信任的文件名拼接到 shell 命令中,也切勿逐字运行占位符文本。
  • 根据变更自动生成提交信息:
  • 第一行:<类型>: <简短描述>(最多 72 个字符)
  • 正文:分组的文件变更及简要说明
  • 使用生成的信息提交,先显示预览
  • 要求用一个词确认是否继续

4. 推送与可选拉取请求

  • 提交后询问:“推送到远程?(yes/no/abort)”
  • 如果选择 yes:git push -u origin <分支名称>
  • 然后询问:“创建拉取请求?(yes/no)”
  • 如果选择 yes:
  • 检查远程仓库:git remote -v
  • 如果是 fork:使用 fork 的远程名(例如 mskadu/repo-name
  • 根据提交信息自动生成拉取请求描述
  • 使用 gh pr create,参数设置:
  • 标题来自分支名称
  • 正文:变更摘要 + 文件细分 + 后续注意事项

关键规则

  • 自动分组相关文件,但允许用户调整
  • 根据实际变更生成分支名称,不要要求用户命名
  • 减少确认:要求用一个词回答或单次确认点
  • 绝不提交密钥、凭据或大型二进制文件
  • 在创建拉取请求前检查 GitHub 仓库是否存在
  • 如果用户在任意一步说“no”,则跳过拉取请求步骤
  • 如果分支已存在且有变更,则提供 amend 或添加新提交的选项

局限性

  • 不得绕过仓库特定的维护者规则、分支策略或必需的审查关卡。
  • 对于破坏性或发布性操作,需明确确认;此技能旨在简化常规 Git 流程,而非解除责任。