Files
assist/推送脚本使用说明.md

256 lines
6.3 KiB
Markdown
Raw Normal View History

# TSP智能助手 - 推送脚本使用说明
## 📁 脚本文件说明
### 1. `auto_push.bat` - 智能自动推送脚本
**功能**: 完整的Git推送流程包含状态检查、确认、提交和推送
**特点**:
- 显示详细的Git状态
- **智能分析markdown文件修改**
- **自动生成语义化提交信息**
- 用户确认机制(支持编辑提交信息)
- 错误处理和状态反馈
**智能提交信息生成**:
- `fix:` - 修复问题(检测到"修复"、"解决"、"问题"、"错误"
- `feat:` - 新增功能(检测到"功能"、"新增"、"添加"、"实现"
- `perf:` - 性能优化(检测到"优化"、"性能"、"改进"、"提升"
- `docs:` - 文档更新(默认类型)
**使用方法**:
```bash
# 直接运行(智能生成提交信息)
auto_push.bat
# 交互选项:
# y - 使用生成的提交信息
# n - 手动输入提交信息
# e - 编辑生成的提交信息
```
### 2. `auto_push.ps1` - PowerShell高级版本
**功能**: 功能最全面的推送脚本,支持参数和高级功能
**特点**:
- 彩色输出和美观的界面
- 支持命令行参数
- 智能提交信息生成
- 详细的统计信息
- 错误处理和回滚
**使用方法**:
```powershell
# 基本使用
.\auto_push.ps1
# 指定提交信息
.\auto_push.ps1 "feat: 添加新功能"
# 强制推送(跳过确认)
.\auto_push.ps1 -NoConfirm
# 强制推送并指定信息
.\auto_push.ps1 "紧急修复" -Force -NoConfirm
```
### 3. `quick_push.bat` - 智能快速推送脚本
**功能**: 最简单的推送方式,适合日常快速提交
**特点**:
- 一键推送
- **智能分析markdown文件并生成提交信息**
- **自动识别提交类型**
- 最小化交互
- 支持自定义提交信息
**使用方法**:
```bash
# 智能生成提交信息(推荐)
quick_push.bat
# 指定自定义提交信息
quick_push.bat "修复bug"
```
## 🧠 智能功能详解
### 自动内容分析
脚本会自动检测修改的markdown文件并提取以下信息
- **文档标题**:提取 `# 标题` 格式的内容
- **问题描述**:识别包含"问题"、"错误"等关键词的内容
- **解决方案**:识别包含"解决"、"修复"等关键词的内容
- **功能描述**:识别包含"功能"、"新增"等关键词的内容
### 提交类型识别
根据markdown文件内容自动识别提交类型
| 关键词 | 提交类型 | 示例 |
|--------|----------|------|
| 修复、解决、问题、错误 | `fix:` | `fix: 飞书权限问题修复` |
| 功能、新增、添加、实现 | `feat:` | `feat: 新增AI建议功能` |
| 优化、性能、改进、提升 | `perf:` | `perf: 优化图表渲染性能` |
| 其他 | `docs:` | `docs: 更新文档记录` |
### 示例工作流
```markdown
# 飞书权限问题修复
## 问题描述
AI建议无法写入飞书表格出现403权限错误。
## 解决方案
1. 检查飞书应用权限配置
2. 添加必要的读写权限
```
**生成的提交信息**: `fix: 飞书权限问题修复`
## 🚀 推荐使用场景
### 日常开发
```bash
# 快速提交日常更改
quick_push.bat "日常更新"
```
### 功能开发
```bash
# 使用PowerShell版本获得最佳体验
.\auto_push.ps1 "feat: 添加用户管理功能"
```
### 紧急修复
```bash
# 快速修复
quick_push.bat "hotfix: 修复登录问题"
```
### 团队协作
```bash
# 使用标准版本,确保流程规范
auto_push.bat
```
## ⚙️ 脚本特性对比
| 特性 | quick_push.bat | auto_push.bat | auto_push.ps1 |
|------|----------------|---------------|---------------|
| 执行速度 | ⚡ 最快 | 🐌 中等 | 🐌 中等 |
| 用户交互 | 最少 | 中等 | 最多 |
| 错误处理 | 基础 | 完整 | 完整 |
| 状态显示 | 基础 | 详细 | 最详细 |
| 参数支持 | 基础 | 无 | 完整 |
| 彩色输出 | 无 | 无 | ✅ |
| 统计信息 | 无 | 基础 | 详细 |
| **智能提交信息** | ✅ | ✅ | ❌ |
| **Markdown分析** | ✅ | ✅ | ❌ |
| **提交类型识别** | ✅ | ✅ | ❌ |
## 🔧 自定义配置
### 修改默认提交信息格式
编辑 `auto_push.bat` 第25行
```batch
set commit_msg=feat: 自动提交 - %date% %time%
```
### 修改远程分支
编辑所有脚本中的 `origin main` 为你的分支:
```batch
git push origin your-branch
```
### 添加预提交检查
`auto_push.ps1` 中添加检查函数:
```powershell
function Test-PreCommit {
# 运行测试
python -m pytest
# 代码格式化检查
python -m black --check .
# 类型检查
python -m mypy .
}
```
## 🛠️ 故障排除
### 常见问题
1. **"nothing to commit, working tree clean" 错误**
```
原因: 工作区没有未提交的更改
解决: 脚本已自动检测并跳过推送,这是正常行为
```
2. **推送失败 (Push failed)**
```
可能原因:
- 网络连接问题
- 远程仓库权限不足
- 分支冲突
- 需要先拉取远程更改
解决方案:
1. 检查网络连接
2. 运行: git pull origin main
3. 重新运行推送脚本
```
3. **PowerShell执行策略错误**
```powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
```
4. **Git认证失败**
```bash
# 检查远程仓库配置
git remote -v
# 重新设置认证
git config --global credential.helper store
```
5. **编码问题**
```bash
# 确保控制台支持UTF-8
chcp 65001
```
6. **重复使用脚本报错**
```
原因: 工作区已干净,无需再次推送
解决: 脚本已优化,会自动检测并跳过
```
### 错误代码说明
- `退出代码 0`: 成功
- `退出代码 1`: Git操作失败
- `退出代码 2`: 用户取消操作
## 📝 最佳实践
1. **提交前检查**: 使用 `auto_push.ps1` 查看详细状态
2. **提交信息规范**: 使用 `feat:`, `fix:`, `docs:` 等前缀
3. **定期推送**: 避免长时间不推送导致冲突
4. **分支管理**: 在功能分支开发,合并到主分支
## 🎯 示例工作流
```bash
# 1. 开发功能
# ... 编写代码 ...
# 2. 快速推送
quick_push.bat "feat: 添加AI建议功能"
# 3. 或者详细推送
.\auto_push.ps1 "feat: 添加AI建议功能
- 实现语义相似度计算
- 优化前端UI显示
- 添加配置化阈值"
```
---
**提示**: 建议将脚本文件添加到项目根目录,并设置适当的执行权限。对于团队使用,建议统一使用 `auto_push.ps1` 以确保流程一致性。