前置知识和准备:
什么是Pull requests?
Pull Requests(PR)是代码协作平台(如 GitHub、GitLab 等)中的一种功能,用于提议将某分支的代码变更合并到另一个分支(通常是主分支)。它允许开发者在合并前进行代码审查、讨论和修改,是团队协作开发的核心工具之一。
一、fork
先fork你想要PR的开源项目的仓库,fork(复刻)的意思就是克隆了一份属于你的私人副本。
为什么要fork呢?
-
那是因为原项目你通常只有"读"的权限,无法进行更改。fork之后,这个副本就在你的Github账号下,你就可以随意增删代码、实验新技术,而不会影响到原项目。
-
建立了"链接"关系
-
虽然是一个独立的副本,但Github会帮你记录它的出处(也就是原项目)
-
你可以随时从原项目Pull最新的更新,保证自己的代码不落后。
-
当你完成修改后,就可以通过Pull Request请求原作者把你写的代码合并到原项目
-
进入你想要PR的项目仓库,点击Fork

输入一些可以自定义的东西(一般默认就行)

Fork成功之后会跳转到对应fork项目仓库(在你的Github账户下)

二、clone
将fork项目clone到本地
1.1 复制项目地址(如果配置了ssh,可以复制对应的ssh地址:如何在github上配置ssh key)

1.2 在本地的一个目录里打开Git base

1.3 输入git clone + 复制的项目地址,将项目部署到本地
创建专属的功能分支(一般一个 PR 对应一个独立分支,一个分支只做一件事,禁止在默认分支直接提交代码)

三、代码更新并推送
在你常用的编辑器来打开该项目并进行对代码的更新(这里以goland演示,无论哪个编辑器后续的操作都是一致的)

可以看下面这篇文章了解下Git 代码提交注释管理规范
使用约定式提交规范编写Git代码提交注释-开发者社区-阿里云
提交并推送修改到你的远程仓库(即最开始你fork的那个项目仓库)
代码提交前的必做检验:
- 代码格式检查:执行项目的格式化命令(如 Go 项目的
go fmt ./...、前端项目的prettier --write .),保证代码符合项目规范;
- 静态代码检查:执行项目的 lint 命令,消除所有警告和错误;
- 编译 / 构建校验:本地编译 / 构建项目,确保无编译报错;
- 单元测试:执行项目的单元测试用例,确保所有用例通过,修改不影响原有业务逻辑。
四、提交PR
打开fork项目仓库并切换到需要PR的分支

点击创建一个Pull request

PR description该怎么写?(以下是一个简要的模板,如果想要更详细可以看其他人的 pr description或者询问Ai)
-
背景与动机 (What & Why)
- 解决了什么问题 / 关联的 Issue: 例如:修复了客户端代码中注释缺失的问题,提升可读性。
-
主要改动 (Changes)
-
在
clientWR.go中补充了核心函数的注释说明。 -
修正了某处的拼写错误。
-
-
测试说明 (How to Test)
-
本地编译通过。
-
确认修改不影响现有逻辑。
-
PR 创建成功且没有冲突
这样,一个PR便成功创建并提交给了项目作者或者审核者,你只需要等待他们的审查和反馈即可。
当然,如果有冲突的话,可以参考文章PR冲突详解及如何更新进行修改
以上就是一个完整成功的PR流程了,但在其中还有一些需要注意的点:
注意一:在提交前最好先更新一下自己fork的项目仓库,因为在你修改fork项目代码的时候原项目代码也可能会更新,如果更新的那一部分正好和你有关,可能会导致不必要的代码冲突,所以,任何时候要推送代码的时候都要更新一下。
方法:在 GitHub 页面上同步 现在 GitHub 你的 Fork 仓库主页上,有一个 "Sync fork" (同步 fork)的按钮。每次你准备写代码前,或者准备提交 PR 前,先去点一下那个按钮,确保你的 Fork 仓库和原仓库保持一致,然后再 git pull 到你本地!!!。