Files
nofx/docs/community/HOW_TO_MIGRATE_YOUR_PR.zh-CN.md
tinkle-community 16ff57778d update docs
2025-12-21 01:36:16 +08:00

273 lines
5.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🔄 如何将你的 PR 迁移到新格式
**语言:** [English](HOW_TO_MIGRATE_YOUR_PR.md) | [中文](HOW_TO_MIGRATE_YOUR_PR.zh-CN.md)
本指南帮助你将现有 PR 迁移以满足新的 PR 管理系统要求。
---
## 🎯 为什么要迁移?
虽然你的现有 PR **仍将按照当前标准审核和合并**,但将其迁移到新格式可以获得:
**更快的审核** - 自动化检查尽早捕获问题
**更好的反馈** - CI 提供清晰、可操作的反馈
**更高质量** - 一致的代码标准
**学习机会** - 了解我们新的贡献工作流程
---
## ⚡ 快速检查(推荐)
### 步骤 1分析你的 PR
```bash
# 运行 PR 健康检查(只读,不修改任何内容)
./scripts/pr-check.sh
```
这将分析你的 PR 并告诉你:
- ✅ 什么是好的
- ⚠️ 什么需要注意
- 💡 如何修复问题
- 📊 整体健康评分
### 步骤 2修复问题
根据建议,手动修复问题。常见修复:
```bash
# Rebase 到最新 dev
git fetch upstream && git rebase upstream/dev
# 格式化 Go 代码
go fmt ./...
# 运行测试
go test ./...
# 格式化前端代码
cd web && npm run lint -- --fix
```
### 步骤 3再次运行检查
```bash
# 验证所有问题都已修复
./scripts/pr-check.sh
```
### 步骤 4推送更改
```bash
git push -f origin <your-pr-branch>
```
### 脚本做什么
1. ✅ 与最新的 `upstream/dev` 同步
2. ✅ Rebase 你的更改
3. ✅ 格式化 Go 代码(`go fmt`
4. ✅ 运行 Go linting`go vet`
5. ✅ 运行测试
6. ✅ 格式化前端代码(如果适用)
7. ✅ 推送更改到你的 PR
---
## 🛠️ 手动迁移(逐步指南)
如果你更喜欢手动操作:
### 步骤 1与 Upstream 同步
```bash
# 如果还没添加 upstream添加它
git remote add upstream https://github.com/NoFxAiOS/nofx.git
# 获取最新更改
git fetch upstream
# Rebase 你的分支
git checkout <your-pr-branch>
git rebase upstream/dev
```
### 步骤 2后端检查Go
```bash
# 格式化 Go 代码
go fmt ./...
# 运行 linting
go vet ./...
# 运行测试
go test ./...
# 如果有更改,提交它们
git add .
git commit -m "chore: format and fix backend issues"
```
### 步骤 3前端检查如果适用
```bash
cd web
# 安装依赖
npm install
# 修复 linting 问题
npm run lint -- --fix
# 检查类型
npm run type-check
# 测试构建
npm run build
cd ..
# 提交任何修复
git add .
git commit -m "chore: fix frontend issues"
```
### 步骤 4更新 PR 标题(如果需要)
确保你的 PR 标题遵循 [Conventional Commits](https://www.conventionalcommits.org/)
```
<type>(<scope>): <description>
示例:
feat(exchange): add OKX integration
fix(trader): resolve position tracking bug
docs(readme): update installation guide
```
**类型:**
- `feat` - 新功能
- `fix` - Bug 修复
- `docs` - 文档
- `refactor` - 代码重构
- `perf` - 性能改进
- `test` - 测试更新
- `chore` - 构建/配置更改
- `security` - 安全改进
### 步骤 5推送更改
```bash
git push -f origin <your-pr-branch>
```
---
## 📋 检查清单
迁移后,验证:
- [ ] PR 已基于最新 `dev` rebase
- [ ] 没有合并冲突
- [ ] 后端测试在本地通过
- [ ] 前端构建成功
- [ ] PR 标题遵循 Conventional Commits 格式
- [ ] 所有 commit 都有意义
- [ ] 更改已推送到 GitHub
---
## 🤖 迁移后会发生什么?
推送更改后:
1. **自动化检查将运行**(不会阻止合并,只提供反馈)
2. **你将收到评论**,包含检查结果和建议
3. **维护者将审核** 你的 PR有了新的上下文
4. **更快的审核** 得益于预检查
---
## ❓ 故障排除
### "Rebase 冲突"
如果在 rebase 期间遇到冲突:
```bash
# 在编辑器中修复冲突
# 然后:
git add <fixed-files>
git rebase --continue
# 或中止并寻求帮助:
git rebase --abort
```
**需要帮助?** 在你的 PR 中评论,我们会协助!
### "测试失败"
如果测试失败:
```bash
# 运行测试查看错误
go test ./...
# 修复问题
# 然后提交并推送
git add .
git commit -m "fix: resolve test failures"
git push -f origin <your-pr-branch>
```
### "脚本不工作"
如果迁移脚本不工作:
1. 检查你是否安装了 Go 和 Node.js
2. 尝试手动迁移(上面的步骤)
3. 在你的 PR 评论中寻求帮助
---
## 💡 提示
**不想迁移?**
- 没关系!你的 PR 仍将被审核和合并
- 迁移是可选的但推荐的
**第一次使用 Git rebase**
- 查看我们的 [Git 指南](https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%8F%98%E5%9F%BA)
- 在你的 PR 中提问 - 我们在这里帮助!
**想了解更多?**
- [贡献指南](../../docs/i18n/zh-CN/CONTRIBUTING.md)
- [迁移公告](MIGRATION_ANNOUNCEMENT.zh-CN.md)
- [PR 审核指南](../maintainers/PR_REVIEW_GUIDE.zh-CN.md)
---
## 📞 需要帮助?
**迁移遇到困难?**
- 在你的 PR 中评论
- 在 [Telegram](https://t.me/nofx_dev_community) 提问
- 开启 [Discussion](https://github.com/NoFxAiOS/nofx/discussions)
**我们在这里帮助你成功!** 🚀
---
## 🎉 迁移后
迁移完成后:
1. ✅ 等待自动化检查运行
2. ✅ 处理评论中的任何反馈
3. ✅ 等待维护者审核
4. ✅ 合并时庆祝!🎉
**感谢你为 NOFX 做出贡献!**