git-committer

这个 skill 帮助分析 git 变更内容并生成符合项目规范的 commit message。

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "git-committer" with this command: npx skills add gtbsgfe/gt-fe-bsg-skills/gtbsgfe-gt-fe-bsg-skills-git-committer

Git Committer

这个 skill 帮助分析 git 变更内容并生成符合项目规范的 commit message。

何时使用

当用户出现以下情况时调用此 skill:

  • 用户说"提交代码"、"commit"、"生成 commit message"

  • 用户需要将当前的代码变更提交到 git 仓库

  • 用户想要查看变更并生成提交信息

  • 用户执行 git 相关操作时

工作流程

查看 git 状态

  • 执行 git status 查看当前变更状态

  • 执行 git diff 查看未暂存的变更

  • 执行 git diff --cached 查看已暂存的变更

环境配置文件过滤

  • 自动识别并过滤环境配置文件的修改

  • 常见的环境配置文件包括:

  • vite.config.ts/js

  • webpack.config.js

  • .env 及其变体文件

  • 其他构建工具配置文件

  • 这些文件的修改不会生成提交计划,直接忽略

分析变更内容

  • 识别变更的文件类型和影响范围

  • 理解变更的目的和功能

  • 确定变更的类型([feature]、[fix]、[update]、[docs]、[style]、[refactor]、[test]、[chore]、[bump] 等)

判断是否需要拆分提交

  • 如果变更涉及多个功能点,必须按功能拆分提交

  • 如果变更涉及不同类型的修改(如同时有新功能和 bug 修复),必须拆分提交

  • 每个提交应该只做一件事,保持提交的原子性

拆分提交策略

  • 按功能模块拆分:将同一功能相关的文件归为一组

  • 按变更类型拆分:将新功能、bug 修复、重构等分开提交

  • 按文件类型拆分:将代码变更、配置变更、文档变更分开提交

  • 每次提交前使用 git add 添加对应的文件,然后提交

生成 commit message

  • 遵循项目使用的方括号格式规范

  • 格式:type: subject

  • subject 使用中文描述,首字母小写,不以句号结尾

  • 包含简洁的描述和必要的详细说明

  • 如果有相关 issue,添加引用

  • 标题最大宽度 100 字符

用户确认流程

  • 必须先展示生成的 commit message 和提交计划,等待用户明确同意后再执行提交

  • 只有在用户明确确认后,才能执行 git commit -m "message"

  • 绝对禁止在未获得用户明确确认的情况下自动执行 git commit 命令

  • 必须在展示 commit message 后等待用户的明确回应,如"确认"、"可以"、"同意"等

  • 如果用户对 commit message 提出修改意见,必须根据用户意见调整后重新展示并等待确认

  • 如果需要拆分提交,必须为每个提交单独获得用户确认

  • 如果用户明确要求合并提交,则以用户为准

执行提交

  • 根据用户确认的提交计划执行提交操作

  • 使用 git add 选择性添加文件

  • 执行 git commit -m "message" 提交变更

  • 确保环境配置文件不会被添加到提交中

推送代码(可选)

  • 所有提交完成后,询问用户是否需要推送代码

  • 如果用户需要推送,调用 push-code skill 来处理推送操作

Commit 类型

  • [feature] : 针对用户的新特性,而不是针对构建脚本的新特性

  • [fix] : 针对用户修复的错误,而不是针对构建脚本的修复

  • [update] : 特性更新、功能优化,而不是新增特性或修复 bug

  • [docs] : 文档修改

  • [style] : 不会影响代码含义的更改(空格,格式,缺少分号等)

  • [refactor] : 重构生产代码,例如重命名变量;既不是修复问题也不是新增功能

  • [test] : 添加缺失的测试用例,重构测试用例;生产代码无变化

  • [chore] : 更新构建工具等;生产代码无变化

  • [bump] : 新版本

示例

单个提交示例

feature: 添加用户登录功能

  • 实现登录表单及验证
  • 添加 JWT token 处理
  • 更新认证状态管理

fix: 解决数据获取超时问题

  • 修复连接超时配置
  • 添加失败请求重试机制

update: 优化 disabled 模式下的显示逻辑

  • 在 disabled 模式下,如果包含或排除没有数据,不展示对应的 group
  • 如果包含和排除都没有数据,不展示整个 crowd-rule__content 区域

拆分提交示例

假设同时修改了用户登录功能和修复了 API 超时问题,应该拆分为两个提交:

提交 1:

feature: 添加用户登录功能

  • 实现登录表单及验证
  • 添加 JWT token 处理
  • 更新认证状态管理

提交 2:

fix: 解决数据获取超时问题

  • 修复连接超时配置
  • 添加失败请求重试机制

假设同时修改了代码和配置文件,应该拆分为两个提交:

提交 1:

refactor: 简化日期格式化逻辑

  • 提取通用日期函数
  • 提高代码可读性

提交 2:

chore: 切换代理目标到开发环境

  • 将代理目标从测试环境切换到开发环境
  • 注释掉测试环境 token 配置

注意事项

  • 绝对禁止自动执行 git commit,必须获得用户的明确确认

  • 必须先展示生成的 commit message,等待用户明确同意后再执行提交

  • 如果用户未明确表示同意,任何情况下都不得执行 git commit 命令

  • 执行提交前必须再次确认用户的明确意图

  • 环境配置的修改(如 vite.config.ts 中的代理配置等)不要自动提交,直接忽略

  • 自动识别并过滤常见的环境配置文件,包括但不限于:

  • vite.config.ts/js

  • webpack.config.js

  • .env 及其变体文件

  • 其他构建工具配置文件

  • 严格区分提交类型,确保使用正确的类型:

  • [feature] :新功能

  • [fix] :bug 修复

  • [update] :功能优化、联调过程中的改进

  • [refactor] :代码重构

  • [chore] :构建工具、配置文件修改

  • 如果变更复杂,可以提供多个 commit message 选项供用户选择

  • commit message 使用中文描述

  • subject 首字母自动小写,自动移除末尾句号

  • scope 可选,如果提供会自动转换为小写

  • 如果有破坏性变更,需要添加 BREAKING CHANGE 说明

  • 每个提交应该只做一件事,保持提交的原子性

  • 只要涉及多个功能点,就必须按功能拆分提交

  • 如果变更涉及不同类型的修改,必须拆分提交

  • 拆分提交时,使用 git add 选择性添加文件

  • 如果用户明确要求合并提交,则以用户为准

技术实现细节

环境配置文件识别:

  • 建立环境配置文件列表,包括常见的构建工具配置文件和环境变量文件

  • 在分析变更时,自动过滤这些文件的修改

变更分析:

  • 执行 git diff --name-only 获取所有变更文件

  • 过滤掉环境配置文件

  • 对剩余文件进行分析,确定变更类型和范围

提交计划生成:

  • 基于过滤后的变更文件生成提交计划

  • 确保环境配置文件的修改不会出现在提交计划中

用户确认流程:

  • 展示生成的 commit message 和提交计划

  • 等待用户的明确确认

  • 只有在用户确认后才执行提交操作

执行提交:

  • 使用 git add 选择性添加文件

  • 执行 git commit -m "message" 提交变更

  • 确保环境配置文件不会被添加到提交中

常见错误处理

用户未确认直接提交:

  • 错误:在未获得用户明确确认的情况下执行 git commit 命令

  • 处理:必须严格遵守用户确认流程,先展示 commit message,等待用户确认后再执行提交

提交类型选择错误:

  • 错误:将联调优化标记为 [fix],或将 bug 修复标记为 [feature]

  • 处理:严格按照提交类型定义选择正确的类型,确保提交信息准确反映变更内容

环境配置文件未过滤:

  • 错误:将 vite.config.ts 等环境配置文件的修改包含在提交计划中

  • 处理:自动识别并过滤环境配置文件,确保这些修改不会出现在提交计划中

提交拆分不当:

  • 错误:将多个功能点或不同类型的修改合并在一个提交中

  • 处理:根据功能模块和变更类型拆分提交,保持提交的原子性

用户确认后执行失败:

  • 错误:用户确认后执行 git commit 命令失败

  • 处理:检查错误信息,根据需要调整提交策略,确保提交成功

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

git-committer

No summary provided by upstream source.

Repository SourceNeeds Review
General

git-committer

No summary provided by upstream source.

Repository SourceNeeds Review
General

git-committer

No summary provided by upstream source.

Repository SourceNeeds Review
General

image-gen

Generate AI images from text prompts. Triggers on: "生成图片", "画一张", "AI图", "generate image", "配图", "create picture", "draw", "visualize", "generate an image".

Archived SourceRecently Updated