Files
TeyvatGuide/.trae/skills/git-workflow/SKILL.md
BTMuli a2985d9719 🚀 0.9.9
2026-04-08 12:05:18 +08:00

8.3 KiB
Raw Blame History

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 提交工作流指南,涵盖提交规范和任务完成后的提交流程。

📚 目录

  1. Git Commit 规范 - 提交信息格式规范
  2. Task Completion Commit - 任务完成后的提交指南
  3. 快速参考 - 提交流程和 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 错误),应该:

  1. 查看错误信息
  2. 修复错误
  3. 重新尝试提交

完整示例

场景:用户要求重构图片浮窗组件并更新 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 状态管理
🧑‍💻 优化热更新加载速度

相关文档