新手Github提交PR(Pull requests)详细教程

一、什么是Pull requests?

Pull Requests(PR)是代码协作平台(如 GitHub、GitLab 等)中的一种功能,用于提议将某分支的代码变更合并到另一个分支(通常是主分支)。它允许开发者在合并前进行代码审查、讨论和修改,是团队协作开发的核心工具之一。

二、提交PR的作用

GitHub的Pull Request(PR)是协作开发中的核心功能,主要用于代码审查、讨论和合并贡献。以下是其主要作用:

促进代码审查与改进
PR允许贡献者将代码变更提交给项目维护者,维护者可以查看修改内容,提出建议或请求进一步调整。通过评论和讨论,确保代码质量符合项目标准。

简化协作流程
开源项目中,非核心成员通过PR提交代码变更,无需直接写入主仓库。维护者拥有最终合并权限,避免未经审核的代码影响主分支稳定性。

记录变更历史
PR包含完整的修改描述、讨论记录和审查意见,形成可追溯的文档。合并后自动关联提交历史,便于后续排查问题或理解代码演进过程。

自动化集成检查
GitHub可配置CI/CD工具(如Actions),在PR阶段自动运行测试、lint检查或构建流程。失败时会阻止合并,确保主分支始终处于可部署状态。

支持分阶段合并
大型项目可能使用多级PR流程,例如从开发分支提交到测试分支,再合并到主分支。不同环境对应不同审查标准,降低风险。

非代码类协作
PR不仅限于代码,也可用于文档更新、配置文件修改等。任何仓库内容的变更均可通过此机制提交和审核。

权限管理工具
对于企业或私有项目,PR是实施代码所有权(Code Ownership)策略的关键,特定文件修改需指定人员审批后方可合并。

通过PR机制,GitHub将分布式协作流程标准化,成为现代软件开发中质量控制的核心环节。

三、提交PR流程

我们以国内嵌入式操作系统RT-thread为例:

1、注册Github账户

首先需要注册一个自己的Github账户。
在这里插入图片描述

2、进入rt-thread仓库

https://github.com/RT-Thread/rt-thread,点击链接进入。
在这里插入图片描述

3、fork一份rt-thread源码进入自己仓库

在这里插入图片描述
我已经fork过了,所以会有下面的提示,没fork过的话选择自己的账户路径就OK了。
在这里插入图片描述
如果是较早之前fork的仓库,可以先和上游的仓库同步一下:
在这里插入图片描述

4、将代码从自己仓库拉取到本地

Github下载安装,点击链接进入
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
等待clone完成:
在这里插入图片描述
Github为国外网站,所以下载起来会比较慢。

5、创建一个新的分支

在这里插入图片描述

6、修改需要修改的部分

在这里插入图片描述
加入新的内容

7、提交推送

在这里插入图片描述

8、发起PR

在这里插入图片描述
填写相关内容
在这里插入图片描述
根据要求检查代码:
在这里插入图片描述
下面可以看到修改的内容:
在这里插入图片描述
检查没问题后点击按钮创建:
在这里插入图片描述

此时你就可以在rt-thread仓库看到你发起的PR了:
在这里插入图片描述
管理员检测没问题就会合并你的代码进入主仓库了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/96856.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/96856.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

本地通过跳板机连接无公网IP的内网服务器

本地环境:SSH client 堡垒机:有公网IP,有连接内网服务器的秘钥 SSH配置: Host jmsHostName [堡垒机的公网IP]Port 22User rootIdentityFile ~/.ssh/id_rsaHost appHostName 10.0.0.14Port 22User rootIdentityFile ~/.ssh/svc-p…

B树,B+树,B*树

下面我们来详细讲解一下 B树、B树、B*树 这三种非常重要的多路平衡查找树。它们在数据库和文件系统中有着极其广泛的应用。一、为什么需要这些树结构?在开始之前,我们先思考一个问题:为什么已经有了二叉搜索树(BST)、A…

汽车零部件工厂ESOP系统工业一体机如何选型

在汽车零部件工厂的生产管理中,ESOP 系统发挥着至关重要的作用。而工业一体机作为 ESOP 系统的关键硬件支撑,其选型的合理性直接关系到生产效率的提升、生产过程的精准控制以及生产数据的可靠采集与分析。因此,为汽车零部件工厂选择一款适合的…

​维基框架 (Wiki Framework) 1.1.0 版本发布​ 提供多模型AI辅助开发

介绍 多模型AI辅助开发​ 维基框架1.1.0集成了主流AI引擎的统一接口,支持开发者按需调用不同模型的优势能力: ​DeepSeek​:专注代码生成与重构,擅长复杂业务逻辑实现 ​ChatGPT​:多模态推理能力,适用于…

LabVIEW调用MATLAB 的分形生成

LabVIEW 调用 MATLAB,可借前者可视化流程与硬件交互优势,结合后者强数值计算、算法能力,复用成熟算法提速开发,还能灵活改代码。但需匹配版本、装运行环境,数据传递有性能损耗,脚本出错需跨软件调试。​优点…

ubuntu20.04开发ros2,使用docker安装部署的详细教程

学习docker的教程:可以直接在菜鸟教程上学习即可阶段 0:系统检查| 内容 | 建议 | |------|------| | 操作系统 | Ubuntu 22.04(与 ROS2 Humble 最匹配) | | 用户权限 | 能执行 sudo |🧩 阶段 1:在 Ubuntu 上…

SQL Server缩小日志文件.ldf的方法(适用于开发环境)

SQL Server缩小日志文件.ldf的方法(适用于开发环境) 核心概念:为什么日志文件会变大? 首先,理解原因至关重要。事务日志文件在以下情况下会增长: 大量操作:执行了大批量插入、更新或删除操作&am…

2.3零基础玩转uni-app轮播图:从入门到精通 (咸虾米总结)

还在uni-app中的轮播图组件头疼吗?看完这篇,让你轻松掌握swiper的所有秘密!轮播图的重要性 在现代移动应用开发中,轮播图(Swiper)已成为展示焦点内容、广告推广和产品展示的首选组件。无论是电商平台的商品…

FPGA学习笔记——AHT20温湿度读取并在串口显示(IIC协议)

目录 一、任务 二、分析 1.需要了解的 2.需要用到的模块 3.流程分析 三、Visio图 四、代码 五、实验现象 一、任务 使用IIC协议通信的AHT20,将温湿度数据读取出来,并在串口助手上显示。 二、分析 1.需要了解的 需要了解IIC协议简介 也可以看看E…

Pycharm SSH连接

添加远程服务器文件——>设置——>项目下的Python解释器——>添加解释器——>SSH在弹出的弹窗中,输入远程的主机、端口和用户名、一直下一步,得到如下图所示的结果:选择Conda 环境:第一步选择Conda环境;第…

c# 读取xml文件内的数据

好多大型的项目&#xff0c;把一些固定的参数都存在 xml文件里。创建c# winfom 项目&#xff0c;test_xml创建resources文件夹存放xml文件创建parameters.xml文件<root><test_xml><param name "threshold" value "128"/><param name …

Legion Y7000P IRX9 DriveList

Legion Y7000P IRX9 DriveList 联想Y7000P驱动列表 驱动列表 intelwlan-TYY5057FK6MQBRF0.exe NVVGA-TYY5057F3M0H9RF0.exe RTKwlan-TYY5077FFSNECRF0.exe audio-TYY5057F4N1JARF0.exe chipset-TYY5037FB10X3RF0.exe hdr-TYY5027FXNF9AWF0.exe intelVGA-TYY5057F5R9J7RF…

编程与数学 02-017 Python 面向对象编程 23课题、测试面向对象的程序

编程与数学 02-017 Python 面向对象编程 23课题、测试面向对象的程序一、单元测试&#xff08;Unit Testing&#xff09;使用 unittest 模块使用 pytest二、集成测试&#xff08;Integration Testing&#xff09;三、模拟对象&#xff08;Mocking&#xff09;四、测试驱动开发&…

[React]Antd Cascader组件地区选择

前言表单中添加一个地区选择功能&#xff0c;要求支持增删改查功能。Cascader 使用Cascader组件动态加载地区选项。使用 loadData 实现动态加载选项&#xff0c;&#xff08;loadData 与 showSearch 无法一起使用&#xff09;。 这里使用了Form.Item组件。 <Form.Itemlabel{…

深度学习-----《PyTorch神经网络高效训练与测试:优化器对比、激活函数优化及实战技巧》

一、训练过程并行批量训练机制一次性输入64个批次数据&#xff0c;创建64个独立神经网络并行训练。所有网络共享参数&#xff08;Ω&#xff09;&#xff0c;更新时计算64个批次的平均损失&#xff0c;统一更新全局参数。梯度更新策略使用torch.no_grad()上下文管理器清理反向传…

Matplotlib 可视化大师系列(五):plt.pie() - 展示组成部分的饼图

目录Matplotlib 可视化大师系列博客总览Matplotlib 可视化大师系列&#xff08;五&#xff09;&#xff1a;plt.pie() - 展示组成部分的饼图一、 饼图是什么&#xff1f;何时使用&#xff08;何时避免&#xff09;&#xff1f;二、 函数原型与核心参数三、 从入门到精通&#x…

C++ Core Guidelines 核心理念

引言 C 是一门功能强大但复杂性极高的编程语言。为了帮助开发者更高效、安全地使用现代 C&#xff0c;C 核心指南&#xff08;CppCoreGuidelines&#xff09;应运而生。这份由 C 之父 Bjarne Stroustrup 等人主导的指南&#xff0c;提供了大量关于 C 编码的规则、最佳实践和设…

vue3 - 组件间的传值

组件间传参 父传子v-on/props 父组件使用v-on:绑定要传的参数:parentData"parentData"&#xff1a; <template><div><Child1 :parentData"parentData"></Child1></div> </template> <script setup lang"ts…

Kafka 在 6 大典型用例的落地实践架构、参数与避坑清单

一、选型速查表场景关键目标推荐清单&#xff08;示例&#xff09;消息&#xff08;Messaging&#xff09;解耦、低延迟、可靠投递acksall、enable.idempotencetrue、retries>0、min.insync.replicas2、合理分区键、DLT网站活动追踪吞吐极高、可回放主题按类型拆分&#xff…