本文最后更新于 2026年3月12日。
在 GitHub 的工作流中,Pull Request (PR) 是协作的核心。简单来说,它是一种“申请”:你请求项目维护者把你写的代码“拉取”(Pull)到他们的主项目中。
以下是围绕“贡献”与“管理”的完整流程:
1. Pull Request 是做什么的?
PR 不仅仅是代码传输,它是一个代码评审(Code Review)平台。
-
对比差异: 自动显示你的代码和原项目代码有哪些不同。
-
讨论场所: 维护者可以在具体的某行代码下留言提问,你可以在线回复并修改。
-
自动化测试: 触发项目的 CI/CD 流水线,检查你的代码是否会导致项目崩溃。
2. 你如何给别人的项目贡献代码?
这通常遵循 "Fork + Branch" 模式:
-
Fork(转存): 点击项目右上角的 "Fork",在你自己账号下创建一个该项目的副本。
-
Clone(下载): 将你 Fork 后的仓库下载到本地。
-
新建分支(Branch): 习惯上不要在
main分支改动,新建一个如feature-fix-bug的分支。 -
提交代码(Push): 在本地改好后,提交并推送到你自己的 GitHub 仓库。
-
开启 PR: 回到原作者的 GitHub 页面,你会看到一个明显的按钮 "Compare & pull request"。点击它,写清楚你改了什么、为什么要改。
3. 别人如何给你贡献代码?
当你的项目有了一定影响力,别人会重复上述过程。你会收到:
-
邮件通知: 提示有人提交了 PR。
-
PR 列表更新: 在你项目的 "Pull requests" 标签页下会出现新的条目。
4. 如何采纳或拒绝别人的代码?
作为项目维护者,你有最终裁定权:
检查代码
在 PR 页面点击 "Files changed",你可以看到每一行变动(绿色为新增,红色为删除)。
采纳(Accept)
如果你满意,点击 "Merge pull request"。
-
Create a merge commit: 保留所有提交历史,合并到主分支。
-
Squash and merge: 把对方零碎的多次提交压缩成一个干净的提交(推荐,保持主线整洁)。
-
Rebase and merge: 将对方的改动接在你的最新代码之后。
要求修改(Request Changes)
如果你觉得代码不错但有小瑕疵,不要直接拒绝。在 "Review changes" 中选择 "Request changes",并写下修改建议。对方修改并推送后,PR 会自动更新。
拒绝(Close)
如果代码方向不对、质量太差或不符合项目愿景:
-
礼貌回复: 解释为什么不采纳(例如:功能重复、不符合架构设计)。
-
关闭 PR: 点击底部的 "Close pull request"。这不会删除对方的代码,只是拒绝将其合入你的主线。
下一步建议
如果你想亲手尝试一下,可以先找一个开源项目的 README.md 文档试着修改一个错别字并提交 PR,这是熟悉流程最快的方式。