智能分组提交代码。按功能/模块划分未提交的代码,分批次有条理地 commit。当用户提到"提交"、"commit"、"分组提交"时使用。
按功能或模块划分当前未提交的代码,分批次创建有条理的 commit 记录。
Co-Authored-By 或类似的 AI 生成标识# 查看当前 git 用户配置
git config user.name
git config user.email
# 查看所有未提交的变更(不使用 -uall 避免大仓库内存问题)
git status
# 查看未暂存的变更
git diff --stat
# 查看已暂存的变更
git diff --cached --stat
# 查看最近的 commit 风格
git log --oneline -10
根据以下维度对变更进行分组:
按目录/模块分组(本项目结构)
packages/preview/supports/ - 各类文件预览组件audio-preview/ - 音频预览code-preview/ - 代码预览docx-preview/ - Word 文档预览epub-preview/ - EPUB 电子书预览md-preview/ - Markdown 预览pdf-preview/ - PDF 预览pic-preview/ - 图片预览txt-preview/ - 文本预览video-preview/ - 视频预览xlsx-preview/ - Excel 预览unknown-preview/ - 未知类型预览vue-files-preview/ - 主预览组件packages/preview/ - 预览核心(常量、接口、工具)packages/ - 包入口和版本example/ - 示例项目.github/ - GitHub Actions 和工作流.claude/ - Claude 配置vite-plugins/ - Vite 插件scripts/ - 构建脚本按功能类型分组
feat: - 新功能fix: - bug 修复build: - 构建相关、依赖更新refactor: - 代码重构style: - 样式/格式调整docs: - 文档更新chore: - 工具/配置变更test: - 测试相关perf: - 性能优化按业务功能分组
向用户展示分组方案并确认:
建议将变更分为以下 N 个 commit:
1. feat: 添加 XXX 功能
- file1.tsx
- file2.ts
2. fix: 修复 YYY 问题
- file3.ts
请确认或调整分组方案。
对每个分组执行:
# 1. 先重置暂存区(如果需要)
git reset HEAD
# 2. 添加该分组的文件
git add <file1> <file2> ...
# 3. 提交(不带 Co-Authored-By)
git commit -m "<type>: <description>"
<type>: <简短描述(英文为主,中文亦可)>
注意: 本项目 commit 描述以英文为主,简洁明了。中文描述也可接受。
| Type | 说明 |
|---|---|
| feat | 新功能 |
| fix | Bug 修复 |
| build | 构建相关、依赖更新 |
| refactor | 代码重构(不改变功能) |
| style | 格式调整(空格、分号) |
| docs | 文档变更 |
| test | 测试相关 |
| chore | 工具/配置变更 |
| perf | 性能优化 |
feat: add class name with type preview
feat: pdf use url to preview
fix: change version
fix: PdfPreview can't use url error
fix: 修复长文本无法滚动问题
build: bump sass from 1.81.0 to 1.85.0
chore: update dependencies
当代码检查失败时:
# 查看当前暂存的文件
git diff --cached --name-only
# 创建临时 stash 备份(包含暂存和未暂存)
git stash push -m "backup-before-fix-$(date +%Y%m%d-%H%M%S)"
常见失败原因:
# 运行 lint 检查
pnpm lint
# 运行构建检查
pnpm build
# 自动修复 lint 问题
pnpm lint:fix
# 恢复 stash
git stash pop
# 重新添加文件
git add <files>
# 重新提交
git commit -m "<message>"
# 确保 stash 中有备份
git stash list
# 可以随时恢复
git stash apply stash@{0}
提交前备份
分步执行
回滚方案
# 撤销最后一次 commit(保留变更)
git reset --soft HEAD~1
# 撤销 add(保留变更)
git reset HEAD <file>
Co-Authored-By: Claude 或任何 AI 相关信息--amend 修改已推送的 commit--force 强制推送--no-verify)除非用户明确要求每次提交后输出:
✓ Commit 1/N: <commit message>
- <file1>
- <file2>
SHA: <short-sha>
✓ Commit 2/N: <commit message>
...
提交完成!共创建 N 个 commit。