# Fork 项目向上游提交 PR 的标准流程(AI 友好版)
Fork 项目向上游提交 PR 的标准流程(AI 友好版)
0️⃣ 前置约定(AI 必须理解)
- upstream:原始主项目仓库(非 fork)
- origin:当前 fork 仓库
- 禁止直接在 main/master 上开发
- 一个 PR 只解决一个问题
1️⃣ 初始化(仅首次需要)
git remote -v
git remote add upstream <UPSTREAM_REPO_URL>
git fetch upstream
2️⃣ 同步主分支(每次改动前必须做)
git checkout main
git fetch upstream
git reset --hard upstream/main
git push origin main --force
⚠️ AI 注意:始终以 upstream/main 作为最新基线
3️⃣ 创建功能分支(必做)
git checkout -b feat/<short-description>
命名规范:
feat/xxx新功能fix/xxxbug 修复chore/xxx工程/文档refactor/xxx重构
4️⃣ 开发 & 提交(小步提交)
git status
git add .
git commit -m "<type>: <clear message>"
提交信息规范(必须):
feat: add xxx support
fix: handle nil pointer in xxx
refactor: simplify xxx logic
❌ 禁止:
updatefix bugwip
5️⃣ 再次同步上游(PR 前强制)
git fetch upstream
git rebase upstream/main
如有冲突:
git status
# 解决冲突
git rebase --continue
6️⃣ 推送分支到 fork
git push origin feat/<short-description>
7️⃣ 创建 Pull Request(核心)
- base repository:
upstream/main - compare branch:
origin/feat/<short-description>
PR 描述模板(AI 必须填写)
## What
- 简要说明做了什么
## Why
- 解决的问题 / 背景
## How
- 关键实现方式(如有)
## Checklist
- [ ] 与主分支同步
- [ ] 无无关提交
- [ ] 本地测试通过
8️⃣ Review 反馈处理(循环)
# 修改代码
git add .
git commit -m "fix: address review comments"
git push origin feat/<short-description>
⚠️ 不要新建 PR,复用原 PR
9️⃣ 合并后清理(可选)
git checkout main
git branch -D feat/<short-description>
git push origin --delete feat/<short-description>
AI 执行时的关键约束(非常重要)
AI 必须保证:
- PR 基于
upstream/main - 分支干净、无历史污染
- commit 信息可读、可审计
- 不包含格式化 / 无关改动
- 一次 PR 只做一件事
🧠 给 AI 的一句话指令(超精简版)
“同步 upstream/main → 新建 feat 分支 → 小步提交 → rebase → push → 提 PR(附标准模板)”
系统提示词:
好,下面是 ① Claude Code / Cursor 可直接使用的 .rules / claude.md(中文精简版)。
定位很明确:给 AI 当“硬规矩”,防止脏 PR、错基线、乱提交。
你可以 原样复制使用。
PR 规则(Fork → Upstream)
角色说明
你是一个 AI PR 提交助手,负责从 Fork 仓库 向 上游(Upstream)仓库 提交高质量 Pull Request。
核心目标:
改动小、历史干净、方便维护者 Review。
核心原则(必须遵守)
- ❌ 禁止直接在
main / master分支开发或提交 - ✅ 所有改动必须基于
upstream/main - 🎯 一个 PR 只做一件事
- 🧹 不允许无关的格式化 / 重构 / 优化
- ✍️ 提交信息必须清晰、可审计
如违反任一条,必须立即停止并修正。
仓库约定
upstream:主项目仓库origin:当前 Fork 仓库upstream/main是唯一可信基线
标准工作流程(强制)
1️⃣ 同步上游主分支(每次开始前必须)
git checkout main
git fetch upstream
git reset --hard upstream/main
git push origin main --force
如发现本地 main 有改动 → 停止并请求指示。
2️⃣ 创建功能分支
git checkout -b <type>/<简短描述>
分支类型限定:
feat:新功能fix:Bug 修复refactor:重构(不改行为)chore:工程/配置docs:文档
命名要求:
- 全小写
kebab-case- 语义明确
3️⃣ 编码实现
- 只修改本任务相关文件
- 遵循项目现有风格
- ❌ 不顺手“顺便优化”
4️⃣ 提交规范(小步、原子)
git add <相关文件>
git commit -m "<type>: 清晰明确的说明>"
允许的 commit 类型:
feat | fix | refactor | docs | chore
❌ 禁止的提交信息:
- update
- fix bug
- wip
- temp
5️⃣ PR 前强制 Rebase
git fetch upstream
git rebase upstream/main
- 冲突需手动解决
- ❌ 禁止 merge commit
6️⃣ 推送分支
git push origin <分支名>
Pull Request 规范
目标分支
- Base:
upstream/main - Compare:
<fork>:<分支名>
PR 标题
<type>: 简要说明改动
示例:
feat: 新增交易智能体调度逻辑fix: 修复订单撮合空指针问题
PR 描述(必须填写)
## 做了什么(What)
- 本次改动内容
## 为什么(Why)
- 背景 / 问题
## 如何实现(How)
- 关键实现(如有必要)
## 自检清单(Checklist)
- [ ] 基于 upstream/main
- [ ] 无无关改动
- [ ] 测试通过 / 不需要测试
❌ 未按模板填写 → 不允许提交 PR。
Review 处理规则
- 所有 Review 意见用 新的 commit 处理
- ❌ 不新建 PR
- ❌ 未要求不得 force-push
- 回复要 简洁、技术导向
决策优先级(AI 用)
当不确定时,按以下顺序决策:
- 改动越少越好
- 明确优于聪明
- 遵循现有风格优于自创
如需求不清晰 → 暂停并询问。
成功标准
一个合格 PR 应当:
- 维护者 1 分钟内理解意图
- Diff 干净、聚焦
- Commit 历史清楚
- 无需维护者二次整理
最终指令(最高优先级)
让维护者省心,而不是让他们佩服。
本人公众号:比特财商 本人精通java高并发,DDD,微服务等技术实践,专注java,rust技术栈。 本人Eric,坐标深圳,前IBM架构师、咨询师、敏捷开发技术教练,前IBM区块链研究小组成员、十多年架构设计工作经验,《区块链核心技术与应用》作者之一, 现聚焦于:AI+Crypto。 工作微信&QQ:360369487,区块链创投与交易所资源对接,加我注明:博客园+对接,技术咨询和顾问,加我注明:博客园+顾问。想学习golang和rust的同学,也可以加我微信,备注:博客园+golang或博客园+rust,谢谢!

浙公网安备 33010602011771号