Pull Requests(PR)

前置知识和准备:

  1. Git下载(记得身份配置)

  2. git的基本命令(主要看分支管理和远程仓库模块命令即可)

什么是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 到你本地!!!。

相关推荐
M78佐菲7 小时前
ARM学习笔记(1)
linux·arm开发·笔记·嵌入式硬件·学习
无敌贵点大王9 小时前
RTThread学习记录11——RT-Thread 设备模型吃透:UART/ADC/PWM/PIN 到底有什么区别?
c语言·stm32·学习·链表
是翎11 小时前
深度长文|2026产品经理AI实践手册
人工智能·深度学习·学习·自然语言处理·数据挖掘
Linux-lucky11 小时前
32-38-Linux学习之旅之MySQL综合
linux·运维·学习·mysql·ubuntu
知识分享小能手12 小时前
C++ 学习教程,从入门到精通,C++ 入门知识 — 完整知识点(1)
开发语言·c++·学习
我命由我1234512 小时前
Git 推送报错:error: src refspec main does not match any
运维·git·gitee·github·运维开发·学习方法·版本控制
阿里嘎多学长13 小时前
2026-09-20 GitHub 热点项目精选
开发语言·程序员·github·代码托管
峰向AI13 小时前
skill-up: [阿里开源] 让 AI Agent Skills 自己进化的评估工具
github
AI职业加油站15 小时前
数据要素价值释放年:大数据治理工程师,站上职业新风口
人工智能·学习·职场和发展·数据分析·职场发展
啄缘之间15 小时前
1.【SVA】什么是SVA?
经验分享·学习·测试用例·verilog·sva