打赏

# 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/xxx bug 修复
  • 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

❌ 禁止:

  • update
  • fix bug
  • wip

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 repositoryupstream/main
  • compare branchorigin/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 必须保证:

  1. PR 基于 upstream/main
  2. 分支干净、无历史污染
  3. commit 信息可读、可审计
  4. 不包含格式化 / 无关改动
  5. 一次 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 用)

当不确定时,按以下顺序决策:

  1. 改动越少越好
  2. 明确优于聪明
  3. 遵循现有风格优于自创

如需求不清晰 → 暂停并询问


成功标准

一个合格 PR 应当:

  • 维护者 1 分钟内理解意图
  • Diff 干净、聚焦
  • Commit 历史清楚
  • 无需维护者二次整理

最终指令(最高优先级)

让维护者省心,而不是让他们佩服。


posted @ 2026-01-14 16:14  gyc567  阅读(7)  评论(0)    收藏  举报