SuperAPI AI 工具集

git-commit

编程与开发

查看项目

更新于 10-16 06:01

技能介绍

用途 该技能用于创建标准化、语义化的 git 提交,遵循 Conventional Commits 规范。它会分析实际的 diff 内容,以确定合适的提交类型、作用域和提交信息。当用户要求提交改动、创建 git 提交时使用。

提交信息格式 <type>[optional scope]: <description>

[optional body]

[optional footer(s)]

提交类型

  • feat:新功能
  • fix:缺陷修复
  • docs:仅文档
  • style:格式/样式(不涉及逻辑)
  • refactor:代码重构(既非新功能也非修复)
  • perf:性能改进
  • test:新增/更新测试
  • build:构建系统/依赖
  • ci:CI/配置变更
  • chore:维护/杂项
  • revert:回滚提交

破坏性变更 可用类型/作用域后的感叹号表示,例如 feat!: remove deprecated endpoint;也可用 BREAKING CHANGE 页脚,例如:feat: allow config to extend other configs,随后 BREAKING CHANGE: extends key behavior changed。

工作流程

  1. 分析 diff:若已有暂存内容,使用 git diff --staged;若未暂存,使用 git diff;同时检查状态 git status --porcelain。
  2. 暂存文件(如需要):若没有暂存内容或想按不同方式分组改动,可暂存指定文件(git add path/to/file1 path/to/file2)、按模式暂存(git add .test.、git add src/components/*)或交互式暂存(git add -p)。切勿提交机密信息(.env、credentials.json、私钥)。
  3. 生成提交信息:分析 diff 以确定类型(这是何种变更)、作用域(受影响的区域/模块)、描述(一行变更摘要,使用现在时、祈使语气,少于 72 字符)。
  4. 执行提交:单行可用 git commit -m "<type>[scope]: <description>";多行含正文/页脚可用 git commit -m "$(cat <<'EOF' ... EOF)" 形式。

最佳实践 每次提交只包含一个逻辑变更;使用现在时(add 而非 added);使用祈使语气(fix bug 而非 fixes bug);引用议题(Closes #123、Refs #456);描述保持在 72 字符以内。

Git 安全协议 绝不更新 git config;未经明确请求绝不运行破坏性命令(--force、hard reset);除非用户要求,绝不跳过钩子(--no-verify);绝不向 main/master 强制推送;若因钩子导致提交失败,修复后创建新的提交(不要 amend)。

适用场景 适用于需要在提交时自动判定语义化类型与作用域、生成规范提交信息的日常开发流程。

限制 暂未提供除上述范围外的功能、收费、价格、平台或效果等信息。