smart-git-automation - SKILL

📅 发布时间:2026/10/19 3:25:57
smart-git-automation - SKILL
name: smart-git-automationversion: 1.0.0description: “Smart change detection, auto branch naming, and streamlined commit/PR workflow”risk: criticalsource: communitysource_type: communitysource_repo: mskadu/opencode-agent-skillslicense: MITlicense_source: “https://github.com/mskadu/opencode-agent-skills/blob/main/LICENSE”date_added: “2026-06-05”我的功能智能检测并分组相关更改根据更改自动生成描述性的分支名称精简的工作流扫描 → 分支 → 提交 → 推送 → 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 -- path/to/file ...如果文件路径是生成的请保持 NUL 分隔git diff -z --name-only并将其作为 pathspec 参数传入。绝不要将不受信任的文件名拼接到 shell 命令中也绝不要按字面意义运行占位符文本。根据更改自动生成提交消息第一行type: short description最多 72 个字符正文带简短描述的分组文件更改使用生成的消息提交先展示预览请求一个词的确认以继续4. 推送与可选 PR提交后询问“推送到远程(yes/no/abort)”如果同意git push -u origin branch-name然后询问“创建 PR(yes/no)”如果同意检查远程仓库git remote -v如果是 fork使用 fork 的远程例如mskadu/repo-name根据提交消息自动生成 PR 描述使用gh pr create包含标题来自分支名称正文更改摘要 文件明细 后续说明关键规则自动分组相关文件但允许用户调整根据实际更改生成分支名称不要要求用户命名减少确认要求一个词的回答或单次确认绝不提交密钥、凭据或大型二进制文件创建 PR 前检查 GitHub 仓库是否存在如果用户在任何时候说不则跳过 PR 步骤如果分支已存在且有更改提议修改amend或添加新提交限制不要绕过特定于仓库的维护者规则、分支策略或必需的审查门禁。明确确认破坏性或发布性操作此技能应简化常规 git 流程而不是消除责任。