用途:这是一个规范化的 Git 提交流程技能,用于在提交前检查仓库状态、保护重要分支、保持历史线性并生成符合规范的提交信息,最后可选推送。
主要能力:
-
状态收集:并行运行 git branch --show-current、git status --short、git diff --stat、git diff --cached --stat、git log --oneline -5,了解分支、改动与历史风格;若无改动则提示无可提交并停止。
-
分支保护:当分支匹配 main、develop、staging(精确匹配)或 release/*(前缀匹配)时,先读取 diff 内容,生成 feature/<slug> 形式的短描述分支名,经用户确认后执行 git checkout -b <branch-name>。
-
Rebase:确定基础分支(按顺序检测 develop、main、master 中第一个存在的),使用 git stash、git fetch origin <base-branch>、git rebase origin/<base-branch>、git stash pop。遇到冲突时不自动解决,执行 git rebase --abort 并展示冲突文件交由用户决定。无远程或分支刚创建时可跳过。
-
智能暂存:不暂存 .env*、.pem、.key、credentials*、secret*、*.log 及 node_modules/、.sisyphus/ 等;已有暂存内容时尊重现状,否则用显式文件名 git add,不使用 git add -A 或 git add .。
-
提交信息:采用 <type>(<scope>): <description> 的 Conventional Commits 格式,类型含 feat、fix、refactor、docs、test、chore、style、perf;描述用祈使句、小写、无句号、72 字符内;非平凡改动才写解释原因的主体,并以 Co-Authored-By: Claude noreply@anthropic.com 结尾。通过 HEREDOC 传入 git commit -m。
-
验证与推送:提交后运行 git status 验证;pre-commit 钩子失败时修复后重新暂存并创建新提交(不 amend);询问用户是否推送,可选 git push -u origin <branch-name> 或跳过。
安全规则:不提交疑似含密钥的文件;不 amend;不强制推送;不使用 --no-verify 跳过钩子;推送被拒时展示错误交由用户处理,不重试强制推送。具体平台、收费或适用环境等信息暂未提供。