github上的pull requests做什么的,我怎么能给项目贡献代码,别人怎么给我贡献代码,我怎么采纳或者拒绝别人的代码

205 次阅读

本文最后更新于 2026年3月12日。

在 GitHub 的工作流中,Pull Request (PR) 是协作的核心。简单来说,它是一种“申请”:你请求项目维护者把你写的代码“拉取”(Pull)到他们的主项目中。

以下是围绕“贡献”与“管理”的完整流程:


1. Pull Request 是做什么的?

PR 不仅仅是代码传输,它是一个代码评审(Code Review)平台

  • 对比差异: 自动显示你的代码和原项目代码有哪些不同。

  • 讨论场所: 维护者可以在具体的某行代码下留言提问,你可以在线回复并修改。

  • 自动化测试: 触发项目的 CI/CD 流水线,检查你的代码是否会导致项目崩溃。


2. 你如何给别人的项目贡献代码?

这通常遵循 "Fork + Branch" 模式:

  1. Fork(转存): 点击项目右上角的 "Fork",在你自己账号下创建一个该项目的副本。

  2. Clone(下载): 将你 Fork 后的仓库下载到本地。

  3. 新建分支(Branch): 习惯上不要在 main 分支改动,新建一个如 feature-fix-bug 的分支。

  4. 提交代码(Push): 在本地改好后,提交并推送到你自己的 GitHub 仓库。

  5. 开启 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,这是熟悉流程最快的方式。