在 GitHub 上提交 Pull Request(简称 PR,拉取请求)是参与开源项目或团队协作的核心方式。简单来说,就是把你修改好的代码“请求”合并到别人的项目里。

以下是提交 PR 的完整标准流程,你可以把它看作一份新手避坑指南:

🌱 1. Fork 项目(复制一份到你自己的仓库)

在你想要贡献代码的项目主页,点击右上角的 Fork 按钮。这会在你的 GitHub 账号下生成一个该项目的完整副本。

💻 2. Clone 到本地(把代码下载到电脑)

打开你 Fork 后的仓库,点击绿色的 Code 按钮,复制仓库的 HTTPS 或 SSH 链接。在本地终端(命令行)中执行克隆命令:
git clone 你的仓库链接

🌿 3. 配置上游仓库与创建分支(关键步骤)

进入项目文件夹后,千万不要直接在主分支(main/master)上修改代码!

  • 添加上游仓库:为了后续能同步原项目的最新代码,需要把原项目添加为上游仓库(upstream)。
    git remote add upstream 原项目的仓库链接
  • 同步最新代码:先拉取原项目的最新代码,确保你的基础是最新的。
    git checkout main 然后 git pull upstream main
  • 创建新分支:基于最新的 main 分支,创建并切换到一个新的功能分支。分支名最好有意义,例如 fix/typo-in-readme(修复文档错别字)或 feature/new-login(新增登录功能)。
    git checkout -b fix/typo-in-readme

✏️ 4. 开发与提交(写代码与 Commit)

在本地用你喜欢的编辑器修改代码。修改完成后,执行以下 Git 操作:

  • git add . (将修改加入暂存区)
  • git commit -m "docs: fix typo in installation guide" (提交代码)
    • 提示:Commit 信息最好遵循规范,比如 feat: 表示新功能,fix: 表示修 Bug,docs: 表示改文档,这样会显得非常专业。
  • git push origin fix/typo-in-readme (将你的分支推送到你远程的 GitHub 仓库)

🚀 5. 提交 Pull Request(发起合并请求)

代码推送到你的 GitHub 仓库后,打开你的仓库页面,通常会看到一个醒目的 Compare & pull request 按钮,点击它(或者去原项目的 Pull requests 页面点击 New pull request)。

  • 填写 PR 描述:标题要简明扼要。在描述框里写清楚你解决了什么问题、是怎么修改的,如果有相关的 Issue 编号也可以关联(如 Closes #123)。
  • 点击 Create pull request:正式提交请求,通知原项目的维护者来审查你的代码。

🔄 6. 应对反馈与合并(代码审查)

提交后,项目维护者会 Review 你的代码:

  • 如果需要修改:直接在本地同一个分支(fix/typo-in-readme)上继续修改,然后再次 add、commit、push。PR 会自动更新,不需要重新提交。
  • 如果发生冲突:如果原项目在你修改期间有了新更新,你可能需要先在本地 pull upstream main 并解决冲突,然后再 push。
  • 大功告成:维护者审核通过后,会点击 Merge pull request。你的代码就正式被合入原项目了!🎉

🧹 7. 收尾清理

PR 合并后,记得清理一下本地和远程的临时分支,保持环境整洁:

  • 切回主分支并拉取最新代码:git checkout main 和 git pull upstream main
  • 删除本地功能分支:git branch -d fix/typo-in-readme

💡 给新手的建议:
如果你是第一次尝试,可以先从修复文档错别字、翻译或修正链接开始,这些都是非常受欢迎的入门贡献。另外,动手前记得阅读项目里的 CONTRIBUTING.md 文件,里面通常包含了该项目的具体贡献规范。祝你第一次提 PR 顺利!