Git Helper
自动分析代码变更,生成简洁的 commit 消息,并执行提交和推送操作。
工作流程
按以下步骤执行:
- •
检查 Git 状态
bashgit status git diff
- •
分析代码变更
- •识别修改的文件类型和数量
- •理解代码变更的意图和影响范围
- •确定变更类型(功能、修复、重构、文档等)
- •
生成 Commit 消息
- •使用 Conventional Commits 格式
- •标题简洁明了(50 字符以内)
- •正文详细说明变更内容(如需要)
- •
执行 Git 操作
- •
git add .或git add <specific-files>暂存变更 - •
git commit -m "<生成的提交信息>" - •
git push推送到远程仓库
- •
Commit 消息格式
使用 Conventional Commits 规范:
code
<type>(<scope>): <subject> <body>
Type 类型
- •
feat: 新功能 - •
fix: 修复 bug - •
docs: 文档变更 - •
style: 代码格式(不影响代码运行) - •
refactor: 重构(既不是新功能也不是修复) - •
perf: 性能优化 - •
test: 测试相关 - •
chore: 构建过程或辅助工具的变动 - •
ci: CI 配置文件和脚本的变更
示例
示例 1:新功能
code
feat(chat): 添加流式响应支持 实现 ChatController 的流式输出功能,提升用户体验
示例 2:修复 Bug
code
fix(vector-store): 修复 SimpleVectorStore 初始化错误 解决 VectorStoreConfig 中构造函数参数不匹配的问题
示例 3:重构
code
refactor(service): 优化 ChatService 代码结构 提取公共方法,减少代码重复,提升可维护性
示例 4:文档更新
code
docs: 更新 README 添加快速开始指南 补充 API 使用示例和配置说明
示例 5:依赖更新
code
chore: 更新 Spring AI 版本到 1.0.0-M5 同步最新依赖,修复已知问题
生成规则
标题规则
- •简洁性:标题不超过 50 字符
- •具体性:明确说明做了什么,而不是为什么做
- •时态:使用祈使语气(如"添加"、"修复"、"更新")
- •语言:使用中文(与项目代码注释保持一致)
正文规则(可选)
当变更较复杂时,添加正文说明:
- •解释变更的原因和背景
- •列出主要变更点
- •说明可能的影响
分析代码变更的要点
- •
文件类型识别
- •Java 文件 → 关注类、方法、功能
- •配置文件 → 关注配置项和值
- •文档文件 → 关注内容更新
- •
变更类型判断
- •新增文件 →
feat或docs - •修改逻辑 →
fix或refactor - •删除代码 →
refactor或chore - •仅格式调整 →
style
- •新增文件 →
- •
影响范围评估
- •单个文件 → 在 scope 中指定文件名或模块
- •多个文件 → 使用通用 scope 或省略
执行命令
检查状态
bash
git status git diff
暂存文件
根据变更范围决定:
- •所有变更:
git add . - •特定文件:
git add <file1> <file2>
提交
bash
git commit -m "<生成的标题>"
如果变更复杂,使用多行消息:
bash
git commit -m "<标题>" -m "<正文>"
推送
bash
git push
如果当前分支没有设置上游:
bash
git push -u origin <branch-name>
特殊情况处理
没有变更
如果 git status 显示没有变更:
- •提示用户:"当前工作目录干净,没有需要提交的变更"
- •不执行任何 git 命令
冲突检测
在执行 git push 前:
- •检查是否有未拉取的远程更新
- •如有冲突,提示用户先执行
git pull
未跟踪的文件
对于新文件:
- •确认是否应该提交(避免提交临时文件、日志等)
- •检查
.gitignore规则
注意事项
- •⚠️ 执行
git push前确认当前分支和远程仓库正确 - •⚠️ 不要提交敏感信息(API keys、密码等)
- •⚠️ 检查
.gitignore确保不会提交临时文件 - •⚠️ 对于重要变更,建议先让用户确认 commit 消息
使用场景
场景 1:用户说"提交代码"
- •检查 git 状态
- •分析变更
- •生成 commit 消息
- •执行 add、commit、push
场景 2:用户说"帮我推送代码"
- •检查是否有未提交的变更
- •如有,先提交再推送
- •如无,直接推送已提交的变更
场景 3:用户说"生成提交信息"
- •分析代码变更
- •生成 commit 消息
- •展示给用户确认
- •询问是否执行提交和推送