2025-09-19 19:42:44 +01:00
|
|
|
|
# TSP智能助手 - 推送脚本使用说明
|
|
|
|
|
|
|
|
|
|
|
|
## 📁 脚本文件说明
|
|
|
|
|
|
|
2025-09-22 11:55:23 +01:00
|
|
|
|
### 1. `auto_push.bat` - 智能自动推送脚本
|
2025-09-19 19:42:44 +01:00
|
|
|
|
**功能**: 完整的Git推送流程,包含状态检查、确认、提交和推送
|
|
|
|
|
|
**特点**:
|
|
|
|
|
|
- 显示详细的Git状态
|
2025-09-22 11:55:23 +01:00
|
|
|
|
- **智能分析markdown文件修改**
|
|
|
|
|
|
- **自动生成语义化提交信息**
|
|
|
|
|
|
- 用户确认机制(支持编辑提交信息)
|
2025-09-19 19:42:44 +01:00
|
|
|
|
- 错误处理和状态反馈
|
|
|
|
|
|
|
2025-09-22 11:55:23 +01:00
|
|
|
|
**智能提交信息生成**:
|
|
|
|
|
|
- `fix:` - 修复问题(检测到"修复"、"解决"、"问题"、"错误")
|
|
|
|
|
|
- `feat:` - 新增功能(检测到"功能"、"新增"、"添加"、"实现")
|
|
|
|
|
|
- `perf:` - 性能优化(检测到"优化"、"性能"、"改进"、"提升")
|
|
|
|
|
|
- `docs:` - 文档更新(默认类型)
|
|
|
|
|
|
|
2025-09-19 19:42:44 +01:00
|
|
|
|
**使用方法**:
|
|
|
|
|
|
```bash
|
2025-09-22 11:55:23 +01:00
|
|
|
|
# 直接运行(智能生成提交信息)
|
2025-09-19 19:42:44 +01:00
|
|
|
|
auto_push.bat
|
|
|
|
|
|
|
2025-09-22 11:55:23 +01:00
|
|
|
|
# 交互选项:
|
|
|
|
|
|
# y - 使用生成的提交信息
|
|
|
|
|
|
# n - 手动输入提交信息
|
|
|
|
|
|
# e - 编辑生成的提交信息
|
2025-09-19 19:42:44 +01:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 2. `auto_push.ps1` - PowerShell高级版本
|
|
|
|
|
|
**功能**: 功能最全面的推送脚本,支持参数和高级功能
|
|
|
|
|
|
**特点**:
|
|
|
|
|
|
- 彩色输出和美观的界面
|
|
|
|
|
|
- 支持命令行参数
|
|
|
|
|
|
- 智能提交信息生成
|
|
|
|
|
|
- 详细的统计信息
|
|
|
|
|
|
- 错误处理和回滚
|
|
|
|
|
|
|
|
|
|
|
|
**使用方法**:
|
|
|
|
|
|
```powershell
|
|
|
|
|
|
# 基本使用
|
|
|
|
|
|
.\auto_push.ps1
|
|
|
|
|
|
|
|
|
|
|
|
# 指定提交信息
|
|
|
|
|
|
.\auto_push.ps1 "feat: 添加新功能"
|
|
|
|
|
|
|
|
|
|
|
|
# 强制推送(跳过确认)
|
|
|
|
|
|
.\auto_push.ps1 -NoConfirm
|
|
|
|
|
|
|
|
|
|
|
|
# 强制推送并指定信息
|
|
|
|
|
|
.\auto_push.ps1 "紧急修复" -Force -NoConfirm
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-09-22 11:55:23 +01:00
|
|
|
|
### 3. `quick_push.bat` - 智能快速推送脚本
|
2025-09-19 19:42:44 +01:00
|
|
|
|
**功能**: 最简单的推送方式,适合日常快速提交
|
|
|
|
|
|
**特点**:
|
|
|
|
|
|
- 一键推送
|
2025-09-22 11:55:23 +01:00
|
|
|
|
- **智能分析markdown文件并生成提交信息**
|
|
|
|
|
|
- **自动识别提交类型**
|
2025-09-19 19:42:44 +01:00
|
|
|
|
- 最小化交互
|
2025-09-22 11:55:23 +01:00
|
|
|
|
- 支持自定义提交信息
|
2025-09-19 19:42:44 +01:00
|
|
|
|
|
|
|
|
|
|
**使用方法**:
|
|
|
|
|
|
```bash
|
2025-09-22 11:55:23 +01:00
|
|
|
|
# 智能生成提交信息(推荐)
|
2025-09-19 19:42:44 +01:00
|
|
|
|
quick_push.bat
|
|
|
|
|
|
|
2025-09-22 11:55:23 +01:00
|
|
|
|
# 指定自定义提交信息
|
2025-09-19 19:42:44 +01:00
|
|
|
|
quick_push.bat "修复bug"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-09-22 11:55:23 +01:00
|
|
|
|
## 🧠 智能功能详解
|
|
|
|
|
|
|
|
|
|
|
|
### 自动内容分析
|
|
|
|
|
|
脚本会自动检测修改的markdown文件,并提取以下信息:
|
|
|
|
|
|
- **文档标题**:提取 `# 标题` 格式的内容
|
|
|
|
|
|
- **问题描述**:识别包含"问题"、"错误"等关键词的内容
|
|
|
|
|
|
- **解决方案**:识别包含"解决"、"修复"等关键词的内容
|
|
|
|
|
|
- **功能描述**:识别包含"功能"、"新增"等关键词的内容
|
|
|
|
|
|
|
|
|
|
|
|
### 提交类型识别
|
|
|
|
|
|
根据markdown文件内容,自动识别提交类型:
|
|
|
|
|
|
|
|
|
|
|
|
| 关键词 | 提交类型 | 示例 |
|
|
|
|
|
|
|--------|----------|------|
|
|
|
|
|
|
| 修复、解决、问题、错误 | `fix:` | `fix: 飞书权限问题修复` |
|
|
|
|
|
|
| 功能、新增、添加、实现 | `feat:` | `feat: 新增AI建议功能` |
|
|
|
|
|
|
| 优化、性能、改进、提升 | `perf:` | `perf: 优化图表渲染性能` |
|
|
|
|
|
|
| 其他 | `docs:` | `docs: 更新文档记录` |
|
|
|
|
|
|
|
|
|
|
|
|
### 示例工作流
|
|
|
|
|
|
```markdown
|
|
|
|
|
|
# 飞书权限问题修复
|
|
|
|
|
|
|
|
|
|
|
|
## 问题描述
|
|
|
|
|
|
AI建议无法写入飞书表格,出现403权限错误。
|
|
|
|
|
|
|
|
|
|
|
|
## 解决方案
|
|
|
|
|
|
1. 检查飞书应用权限配置
|
|
|
|
|
|
2. 添加必要的读写权限
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**生成的提交信息**: `fix: 飞书权限问题修复`
|
|
|
|
|
|
|
2025-09-19 19:42:44 +01:00
|
|
|
|
## 🚀 推荐使用场景
|
|
|
|
|
|
|
|
|
|
|
|
### 日常开发
|
|
|
|
|
|
```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 |
|
|
|
|
|
|
|------|----------------|---------------|---------------|
|
|
|
|
|
|
| 执行速度 | ⚡ 最快 | 🐌 中等 | 🐌 中等 |
|
|
|
|
|
|
| 用户交互 | 最少 | 中等 | 最多 |
|
|
|
|
|
|
| 错误处理 | 基础 | 完整 | 完整 |
|
|
|
|
|
|
| 状态显示 | 基础 | 详细 | 最详细 |
|
|
|
|
|
|
| 参数支持 | 基础 | 无 | 完整 |
|
|
|
|
|
|
| 彩色输出 | 无 | 无 | ✅ |
|
|
|
|
|
|
| 统计信息 | 无 | 基础 | 详细 |
|
2025-09-22 11:55:23 +01:00
|
|
|
|
| **智能提交信息** | ✅ | ✅ | ❌ |
|
|
|
|
|
|
| **Markdown分析** | ✅ | ✅ | ❌ |
|
|
|
|
|
|
| **提交类型识别** | ✅ | ✅ | ❌ |
|
2025-09-19 19:42:44 +01:00
|
|
|
|
|
|
|
|
|
|
## 🔧 自定义配置
|
|
|
|
|
|
|
|
|
|
|
|
### 修改默认提交信息格式
|
|
|
|
|
|
编辑 `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 .
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 🛠️ 故障排除
|
|
|
|
|
|
|
|
|
|
|
|
### 常见问题
|
|
|
|
|
|
|
2025-09-22 13:18:51 +01:00
|
|
|
|
1. **"nothing to commit, working tree clean" 错误**
|
|
|
|
|
|
```
|
|
|
|
|
|
原因: 工作区没有未提交的更改
|
|
|
|
|
|
解决: 脚本已自动检测并跳过推送,这是正常行为
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
2. **推送失败 (Push failed)**
|
|
|
|
|
|
```
|
|
|
|
|
|
可能原因:
|
|
|
|
|
|
- 网络连接问题
|
|
|
|
|
|
- 远程仓库权限不足
|
|
|
|
|
|
- 分支冲突
|
|
|
|
|
|
- 需要先拉取远程更改
|
|
|
|
|
|
|
|
|
|
|
|
解决方案:
|
|
|
|
|
|
1. 检查网络连接
|
|
|
|
|
|
2. 运行: git pull origin main
|
|
|
|
|
|
3. 重新运行推送脚本
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
3. **PowerShell执行策略错误**
|
2025-09-19 19:42:44 +01:00
|
|
|
|
```powershell
|
|
|
|
|
|
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-09-22 13:18:51 +01:00
|
|
|
|
4. **Git认证失败**
|
2025-09-19 19:42:44 +01:00
|
|
|
|
```bash
|
|
|
|
|
|
# 检查远程仓库配置
|
|
|
|
|
|
git remote -v
|
|
|
|
|
|
|
|
|
|
|
|
# 重新设置认证
|
|
|
|
|
|
git config --global credential.helper store
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-09-22 13:18:51 +01:00
|
|
|
|
5. **编码问题**
|
2025-09-19 19:42:44 +01:00
|
|
|
|
```bash
|
|
|
|
|
|
# 确保控制台支持UTF-8
|
|
|
|
|
|
chcp 65001
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-09-22 13:18:51 +01:00
|
|
|
|
6. **重复使用脚本报错**
|
|
|
|
|
|
```
|
|
|
|
|
|
原因: 工作区已干净,无需再次推送
|
|
|
|
|
|
解决: 脚本已优化,会自动检测并跳过
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2025-09-19 19:42:44 +01:00
|
|
|
|
### 错误代码说明
|
|
|
|
|
|
|
|
|
|
|
|
- `退出代码 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` 以确保流程一致性。
|