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

相关推荐
wangruofeng8 小时前
opencodex 解锁 Codex 任意模型,一个本地代理打通 Claude/Kimi/GLM/DeepSeek
llm·github·openai
世人万千丶9 小时前
参数管理_Flutter在鸿蒙平台路由参数最佳实践
学习·flutter·华为·harmonyos·鸿蒙
一点一木10 小时前
从60首歌到1个网站:输入你的故事,还你一首歌
前端·github
遇乐的果园12 小时前
前端学习笔记-vue加载渲染优化
前端·笔记·学习
遇乐的果园13 小时前
前端学习笔记-vue状态管理优化
前端·笔记·学习
从零开始的代码生活_14 小时前
C++ 继承详解:访问控制、对象模型、菱形继承与设计取舍
开发语言·c++·后端·学习·算法
可乐奶茶sky14 小时前
AI Agent 学习
人工智能·学习
茯苓gao15 小时前
嵌入式开发笔记:EtherCAT协议从硬件到软件完整配置指南——从零搭建一套EtherCAT通信系统
笔记·嵌入式硬件·学习
刘较瘦_15 小时前
AI 开发中的 Git Submodule 父子仓库模式:前后端分仓管理与协作实践
前端·github
RD_daoyi16 小时前
外链权重暴跌至13%,品牌提及反超传统链接——2026年不做Digital PR,你的独立站等于隐形
运维·网络·学习·机器学习·搜索引擎