mirror of
https://github.com/BTMuli/TeyvatGuide.git
synced 2026-05-22 05:35:48 +08:00
8.3 KiB
8.3 KiB
name, description
| name | description |
|---|---|
| git-workflow | Git workflow 综合指南。Invoke when user wants to make commits, needs commit format guidance, or after completing coding tasks. |
Git Workflow 综合指南
本技能包含完整的 Git 提交工作流指南,涵盖提交规范和任务完成后的提交流程。
📚 目录
- Git Commit 规范 - 提交信息格式规范
- Task Completion Commit - 任务完成后的提交指南
- 快速参考 - 提交流程和 Emoji 速查
Git Commit 规范
🎯 原子提交原则
每个 commit 只包含一个主题的变更。如果一次修改涉及多个方面,应该拆分成多个 commit:
# ✅ 正确:拆分成两个独立的 commit
git add src/components/viewpost/vp-overlay-image.vue
git commit -m "♻️ 重构图片浮窗组件拖拽缩放逻辑"
git add .trae/skills/typescript-standards/skill.md
git commit -m "📝 更新 TypeScript 类型注解规范"
# ❌ 错误:不要混在一个 commit 中
git add 文件 1 文件 2
git commit -m "♻️ 重构组件并更新 TypeScript 规范"
提交格式
<emoji> <描述>
- emoji:使用 Unicode emoji 图标,放在提交信息开头
- 描述:使用中文,以动词开头,简短明了
- 一行不超过 100 字符
- 禁止括号声明:不要使用
✨ feat(xxx)这种格式
拆分指南
| 场景 | 拆分方式 | 示例 |
|---|---|---|
| 代码重构 + 文档更新 | 分成两个 commit | ♻️ 重构组件 + 📝 更新文档 |
| 功能开发 + Bug 修复 | 分成两个 commit | ✨ 添加功能 + 🐛 修复问题 |
| 多个组件修改 | 按组件拆分 commit | ♻️ 重构组件 A + ♻️ 重构组件 B |
| 代码修改 + 配置文件 | 分成两个 commit | ✨ 实现功能 + 🔧 更新配置 |
Emoji 选择指南
🆕 新增内容
| Emoji | 场景 | 示例 |
|---|---|---|
| ✨ | 新功能 | ✨ 添加用户个人页面跳转功能 |
| 🎨 | 代码结构/格式 | 🎨 重构角色卡片组件 |
| 📝 | 文档 | 📝 更新 README |
| 🎉 | 初始项目 | 🎉 初始化项目 |
| ✅ | 测试 | ✅ 添加角色查询单元测试 |
🔧 修改内容
| Emoji | 场景 | 示例 |
|---|---|---|
| 🐛 | Bug 修复 | 🐛 修复角色生日判断逻辑 |
| 🩹 | 小修复/补丁 | 🩹 补充首页 mini 参数处理 |
| ⚡️ | 性能优化 | ⚡️ 优化角色列表渲染性能 |
| ♻️ | 重构 | ♻️ 重构数据库操作层 |
| 💄 | UI/样式 | 💄 调整首页卡片布局 |
🗑️ 删除/清理
| Emoji | 场景 | 示例 |
|---|---|---|
| 🔥 | 删除代码/文件 | 🔥 移除废弃组件 |
| ⚰️ | 删除死代码 | ⚰️ 清理未使用的导入 |
📦 依赖/配置
| Emoji | 场景 | 示例 |
|---|---|---|
| ➕ | 添加依赖 | ➕ 添加图表库依赖 |
| ➖ | 删除依赖 | ➖ 移除冗余依赖 |
| ⬆️ | 升级依赖 | ⬆️ 升级 Vue 版本 |
| 🔧 | 配置文件 | 🔧 更新 vite 配置 |
🚀 部署/构建
| Emoji | 场景 | 示例 |
|---|---|---|
| 🚀 | 部署 | 🚀 部署生产环境 |
| 📦 | 编译/打包 | 📦 更新构建产物 |
更多 Emoji
| Emoji | 场景 | Emoji | 场景 |
|---|---|---|---|
| 🗃️ | 数据库 | 🔒 | 安全问题 |
| 📈 | 分析/跟踪 | 🏗️ | 架构变更 |
| 🧑💻 | 开发体验 | 🚸 | 用户体验 |
| 💫 | 动画/过渡 | 🔀 | 合并分支 |
| ⏪ | 回滚 | 🔖 | 版本标签 |
| 🚧 | 进行中 | 💚 | CI 修复 |
| 🚨 | 警告修复 | 👔 | 业务逻辑 |
| 🦺 | 验证 | 🌐 | 国际化 |
| 💥 | 重大变更 | 🍱 | 静态资源 |
| 🏷️ | 类型定义 | 🚚 | 移动/重命名 |
Task Completion Commit
何时使用
当以下条件满足时,应该提交 commit:
- ✅ 用户请求的编码任务已完成
- ✅ 代码已通过 lint 和类型检查
- ✅ 没有未解决的错误
- ✅ 用户没有明确要求不提交
提交流程
1. 检查变更内容
git status
2. 分析变更主题
关键原则:原子提交
- 如果所有变更属于同一个主题 → 一个 commit
- 如果变更涉及多个主题 → 拆分成多个 commit
3. 选择正确的 emoji
根据变更类型选择对应的 emoji(见上方 Emoji 选择指南)
4. 执行提交
单个主题的提交:
git add <文件路径>
git commit -m "<emoji> <描述>"
多个主题的提交(拆分):
# 提交 1
git add 文件 1
git commit -m "♻️ 重构组件 A"
# 提交 2
git add 文件 2
git commit -m "📝 更新文档"
5. 编写提交信息
格式要求:
- emoji 图标 + 空格 + 中文描述
- 以动词开头
- 一行不超过 100 字符
- 不要使用
feat:这种括号声明
好的示例:
✨ 添加用户个人页面跳转功能
🐛 修复角色生日判断逻辑
♻️ 重构图片浮窗组件拖拽缩放逻辑
📝 更新 TypeScript 类型注解规范
错误的示例:
✨ feat: 添加功能 # ❌ 使用了 type 声明
修复了一些 bug # ❌ 没有 emoji
Added new feature # ❌ 没有使用中文
特殊情况处理
情况 1:用户明确要求不提交
如果用户说"先别提交"或"我自己来提交",则跳过提交步骤。
情况 2:变更太多不确定如何拆分
如果变更涉及多个方面但不确定如何拆分,应该询问用户:
"这次修改涉及多个方面,您希望我:
- 拆分成多个 commit 提交?
- 还是合并成一个 commit 提交?"
情况 3:提交失败
如果提交失败(例如有 lint 错误),应该:
- 查看错误信息
- 修复错误
- 重新尝试提交
完整示例
场景:用户要求重构图片浮窗组件并更新 TypeScript 规范
任务完成后,应该这样提交:
# 检查变更
git status
# 提交 1:组件重构
git add src/components/viewpost/vp-overlay-image.vue
git commit -m "♻️ 重构图片浮窗组件拖拽缩放逻辑"
# 提交 2:规范更新
git add .trae/skills/typescript-standards/skill.md
git commit -m "📝 更新 TypeScript 类型注解规范"
快速参考
提交流程
# 1. 检查变更
git status
# 2. 添加文件(原子提交)
git add <文件路径>
# 3. 提交(格式:<emoji> <描述>)
git commit -m "<emoji> <中文描述>"
Emoji 速查表
| Emoji | 场景 | Emoji | 场景 |
|---|---|---|---|
| ✨ | 新功能 | 🐛 | Bug 修复 |
| ♻️ | 重构 | ⚡️ | 性能优化 |
| 💄 | UI/样式 | 📝 | 文档 |
| 🎨 | 代码格式 | 🔧 | 配置 |
| 🔥 | 删除 | 🚀 | 部署 |
| ⬆️ | 升级依赖 | 🗃️ | 数据库 |
提交示例
✨ 添加用户个人页面跳转功能
🐛 修复角色生日判断逻辑
🩹 补充首页 mini 参数&组件参数处理
♻️ 重构数据库操作为事务模式
⚡️ 优化角色列表渲染性能
💄 调整深色模式配色方案
📝 添加组件使用文档
⬆️ 更新依赖版本,修复安全警告
🔧 更新 vite 配置以支持新插件
🚸 统一 UIGF 导出交互,导出前选择导出路径
💫 添加页面转场动画效果
🐛 修复抽卡记录导出为空的问题
🏗️ 引入 Pinia 状态管理
🧑💻 优化热更新加载速度
相关文档
- Git Commit Rules - Git Commit 规则
- TypeScript Standards - TypeScript 开发规范