【GitHub】如何在github上提交PR(Pull Request) + 多个pr同时提交、互不干扰

【GitHub】如何在github上提交PR(Pull Request

  • 写在最前面
      • 1. 准备工作
        • 1.1 注册 GitHub 账号
        • 1.2 了解 Git 基础
        • 1.3 找到一个项目
      • 2. 创建你的 PR
        • 2.1 Fork 和克隆仓库
        • 2.2 创建一个新的分支
        • 2.3 进行更改
        • 2.4 推送更改到 GitHub
        • 2.5 创建 Pull Request
      • 3. 优化你的 PR
        • 3.1 保持提交清晰
        • 3.2 遵守项目约定
        • 3.3 沟通
        • 3.4 测试
      • 4. 如何提交多个PR
        • git代码版本
        • 页面操作版本
      • 小结


请添加图片描述

🌈你好呀!我是 是Yu欸
🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~
🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长!

写在最前面

GitHub 是全球最大的代码托管平台之一,允许开发者共享代码、协作开发,并进行版本控制。在这个平台上,Pull Request(简称 PR)是一个非常关键的功能,允许你向其他项目贡献代码。这篇博客将详尽介绍如何在 GitHub 上成功提交 PR,包括准备工作、创建 PR 的步骤,以及如何优化你的 PR 以增加被接受的可能性。

参考:如何参与开源项目 - 细说 GitHub 上的 PR 全过程

1. 准备工作

1.1 注册 GitHub 账号

如果你还没有 GitHub 账号,你需要先注册一个。访问 GitHub 官网,点击右上角的“Sign up”按钮,按照提示完成注册流程。

1.2 了解 Git 基础

在尝试提交 PR 前,你需要具备基本的 Git 知识。Git 是一个分布式版本控制系统,广泛用于软件开发中跟踪代码更改。如果你不熟悉 Git,建议先学习以下基础命令:

  • git clone: 克隆一个远程仓库到本地
  • git branch: 管理分支
  • git checkout: 切换分支
  • git add: 添加文件到暂存区
  • git commit: 提交更改
  • git push: 将本地更改推送到远程仓库
1.3 找到一个项目

在 GitHub 上,找到一个你感兴趣的开源项目,通常你可以通过项目的 README 文件了解如何贡献代码。确保你阅读了项目的贡献指南(CONTRIBUTING.md),这对于接下来的步骤非常重要。

2. 创建你的 PR

2.1 Fork 和克隆仓库

首先,你需要将项目仓库“Fork”到你的账户下。这可以通过点击项目主页上的“Fork”按钮来完成。Fork 完成后,你将拥有该仓库的副本(副本将出现在你自己账号的仓库里面)。

然后回到自己账号下,可以找到 fork 到的项目了,接着你需要将其克隆到本地进行修改。

这个项目在你自己的账号下,也就意味着你有任意修改的权限了。我们后面要做的事情,就是将代码变更提到自己 fork 出来的代码库里,然后再通过 Pull Request 的方式将 commits 合入上游项目。

在这里插入图片描述

使用以下命令克隆仓库:

git clone https://github.com/your-username/repository-name.git
cd repository-name
2.2 创建一个新的分支

在你的本地仓库中创建一个新分支进行工作,这是一个好习惯。你可以使用以下命令创建并切换到一个新分支:

git checkout -b feature-branch-name
2.3 进行更改

在新分支中,进行你想要的更改。这可能是添加新功能、修复错误或改进文档。完成更改后,使用 git addgit commit 命令提交这些更改。

git add .
git commit -m "Add a descriptive commit message"
2.4 推送更改到 GitHub

将你的更改推送到你的 GitHub 仓库:

git push origin feature-branch-name
2.5 创建 Pull Request

回到 GitHub,在你的仓库页面上,你会看到一个“Compare & pull request”按钮。点击它,选择你的新分支和原始仓库的目标分支(通常是 mainmaster),填写 PR 的标题和描述,解释你的更改和为什么应该接受这些更改。

在这里插入图片描述

3. 优化你的 PR

3.1 保持提交清晰

确保每个提交都紧密相关,并且提交信息清晰明了。这会使项目维护者更容易理解你的更改,并加快 PR 的审查过程。

3.2 遵守项目约定

遵守项目的编码规范和命名约定。这不仅

展示了你对项目的尊重,也减少了因风格不一致导致的额外修改。

3.3 沟通

PR 的过程中,维护者可能会有反馈或要求你进行更改。保持开放的态度,积极响应反馈,并按需修改你的 PR。

3.4 测试

在提交 PR 之前,确保你的更改没有引入任何错误。运行项目中的测试,并尽可能添加你自己的测试,以验证功能。

4. 如何提交多个PR

注意:同一个项目只能fork一次,所以可以在fork的本地仓库下,创建多个新的分支

git代码版本

创建新分支:为每个pull请求创建一个新分支。在命令行中使用以下命令创建并切换到一个新分支:

$ git checkout -b new-branch

进行修改:在新分支上进行任何需要的修改或添加新功能。
提交变更:使用以下命令将修改提交到你fork的仓库中:

$ git add .
$ git commit -m "Your commit message"
$ git push origin new-branch
页面操作版本

发起pull请求:在GitHub上,导航到你fork的仓库页面。点击”New pull request”按钮,选择你的分支和主仓库的分支,填写描述信息,并提交pull请求。

在这里插入图片描述
然后提交新pr就行
在这里插入图片描述

小结

提交 PR 是开源社区中的一种重要的参与方式,它不仅可以帮助你提高编程技能,还可以扩展你的技术网络。通过遵循上述步骤和建议,你将能够更有效地在 GitHub 上贡献代码。记住,每个贡献都是向开源社区学习和回馈的机会,每次提交都有可能影响成千上万的开发者和最终用户。


欢迎大家添加好友,持续发放粉丝福利!

请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Nacos 安全零信任实践

作者:柳遵飞 Nacos 作为配置中心经常存储一些敏感信息,但是由于误用导致安全风险,最常见的主要是以下两个问题: 1)Nacos 暴露公网可以吗?不可以,因为 Nacos 定位是注册配置中心,是…

谷歌验证码识别/谷歌识别/Google/本地库识别/图像识别

谷歌识别 做这个有两种方式,一种是图像分类的方式,标注量大,识别率有局限性。 另外一种是通过上面的图和下面的小图做一个相似度匹配,做孪生网络。 谷歌验证方式比较丰富,有时候上面的小图没有,我们可以做…

力扣37题:回溯算法之解数独

编写一个程序,通过填充空格来解决数独问题。 数独的解法需 遵循如下规则: 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) 数独部分空…

java-动态代理

为什么需要代理? 如何创建代理 注意:实现类和代理需要实现同一个接口 接口 public interface Star {String sing(String song);void dance(); }实现类 public class BigStar implements Star {private String name;public BigStar(String name) {this.…

开源博客项目Blog .NET Core源码学习(20:App.Hosting项目结构分析-8)

本文学习并分析App.Hosting项目中后台管理页面的个人资料页面、修改密码页面。 个人资料页面 个人资料页面用于显示和编辑个人信息,支持从本地上传个人头像。整个页面使用了layui中的表单、日期与时间选择、上传等样式或模块,通过layui.css文件设置样式…

精彩回顾|从 AI 到银幕:顶尖对话揭秘 AI 如何塑造影视新格局

4月17日,由万合天宜、三次元影业、NOVATECH、微软中国极客天团、微软 Reactor 共同推出的「从 AI 到银幕」顶尖对话在上海微软紫竹园区举办。中国内地著名导演、编剧、监制黄建新,微软(中国)有限公司首席技术官韦青,与…

基于SpringBoot+Vue高校实习管理系统的设计与实现

项目介绍: 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统高校实习管理系统信息管理难度大&#xf…

atlas 500容器(ubuntu20.04)搭建

1.docker 及环境搭建略 2.宿主机驱动安装略 3.宿主机中能正确使用npu-smi 4.docker 拉取略 5.docker 容器启动 docker run -itd --device/dev/davinci0 --device/dev/davinci_manager --device/dev/devmm_svm --device/dev/hisi_hdc -v /run/board_cfg.ini:/run/b…

吴恩达2022机器学习专项课程(一)7.2 逻辑回归的简化成本函数

问题预览/关键词 本节课内容逻辑回归的损失函数简化之后的形式是?为什么可以简化?成本函数的通用形式是?逻辑回归成本函数的最终形式是?逻辑回归为什么用对数损失函数计算成本函数?为什么不直接给出逻辑回归损失函数的…

银河麒麟V10 ARM64 离线安装 新版Docker

查询当前发行版本 nkvers下载最新版本 卸载旧依赖 卸载已经安装的老版本 yum remove docker \containerd.io \docker-runc \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine \docker-compo…

【数据结构7-1-查找-线性-二分法-二叉树-哈希表】

目录 1 查找基本概念2 线性表的查找2.1 顺序查找2.2 二分法查找2.3 分块查找 3 树表的查询3.1 二叉排序树3.1.1 定义3.1.2 二叉树的建立、遍历、查找、增加、删除:3.1.3 代码实现: 3.2 平衡二叉树3.2.1 平横因子3.2.2 不平横树的调整-左旋3.2.3 不平横树…

c++高级篇(三) ——Linux下IO多路复用之poll模型

poll模型 前言 poll模型与select的实现原理相近,所以绝大数的原理其实可以参考select,我们这里对二者的相同点不做过多探究,如果有需要可以去看一下博主的上一篇文章: c高级篇(二) ——Linux下IO多路复用之select模型 这里我们只…

【Jenkins】持续集成与交付 (三):有关报错解决(Jenkins (2.387.3) or higher required)

🟣【Jenkins】持续集成与交付 (三):有关报错解决Jenkins (2.387.3) or higher required 一、Jenkins主页报错二、安装Jenkins插件报错三、解决过程(解压替换jenkins.war)四、重新访问登录💖The Begin💖点点关注,收藏不迷路💖 一、Jenkins主页报错 New version …

51单片机两个中断及中断嵌套

文章目录 前言一、中断嵌套是什么?二、两个同级别中断2.1 中断运行关系2.2 测试程序 三、两个不同级别中断实现中断嵌套3.1 中断运行关系3.2 测试程序 总结 前言 提示:这里可以添加本文要记录的大概内容: 课程需要: 提示&#x…

【电路笔记】-RC振荡器电路

RC振荡器电路 文章目录 RC振荡器电路1、概述2、RC 相移网络3、基本RC振荡器电路4、运算放大器RC振荡器5、运算放大器相位滞后RC振荡器电路6、RC振荡器示例11、概述 RC 振荡器使用放大器和 RC 反馈网络的组合,由于级之间的相移而产生输出振荡。 当单级晶体管放大器作为共发射…

疯狂的爬虫案例(2)文末附源码

软件版本号: python --version Python 3.8.0 pip show selenium Version: 4.20.0 chromedriver.exe -version 109.0.5414.74 主题:爬取10条动态网页内容(电影票房) 1.根据xpath获取网页节点(CtrlF) 2.…

spring高级篇(五)

1、参数解析器 前篇提到过,参数解析器是HandlerAdapters中的组件,用于解析controller层方法中加了注解的参数信息。 有一个controller,方法的参数加上了各种注解: public class Controller {public void test(RequestParam("…

Python-100-Days: Day06 Functions and Modules

函数的作用 编程大师Martin Fowler先生曾经说过:“代码有很多种坏味道,重复是最坏的一种!”,要写出高质量的代码首先要解决的就是重复代码的问题。可以将特定的功能封装到一个称之为“函数”的功能模块中,在需要的时候…

MyBatis(环境配置+基本CRUD)

文章目录 1.基本介绍1.为什么需要MyBatis?2.MyBatis介绍3.MyBatis工作示意图4.MyBatis的优势 2.快速入门文件目录1.需求分析2.数据库表设计3.父子模块环境配置1.创建maven父项目2.删除父项目的src目录3.pom.xml文件文件解释 4.创建子模块1.新建一个Module2.创建一个…

面向对象编程三大特征:封装、继承、多态

封装、继承、多态 1. 封装 1.1 介绍 封装(encapsulation)就是把抽象出的数据 [属性] 和对数据的操作 [方法] 封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作 [方法] ,才能对数据进行操作。 1.2 封装的理解和好处 1) 隐藏实现细节:方法(连接数据库)<…