【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 以增加被接受的可能性。

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 完成后,你将拥有该仓库的副本,接着你需要将其克隆到本地进行修改。

在这里插入图片描述

使用以下命令克隆仓库:

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 上贡献代码。记住,每个贡献都是向开源社区学习和回馈的机会,每次提交都有可能影响成千上万的开发者和最终用户。


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

请添加图片描述

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

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

相关文章

基于VMD-CNN-BiLSTM-Attention组合模型时间序列预测

VMD-CNN-BiLSTM-Attention组合模型是一种复杂的神经网络结构,用于时间序列预测。让我逐步解释这个模型的每个组成部分以及它们是如何结合在一起的: VMD(Variational Mode Decomposition):VMD是一种信号处理技术&#x…

Python、Django和MySQL框架的开源项目中值得学习和借鉴的项目

在Python、Django和MySQL框架的开源项目中,有很多值得学习和借鉴的项目。这些项目不仅可以帮助你了解如何使用这些技术栈进行开发,还能为你提供实践经验和灵感。以下是一些基于PythonDjangoMySQL框架的开源项目示例: Django博客系统&#xff…

【MySQL】DML

1、DML简介 DML(Data Manipulation Language、数据操作语言),用于添加、删除、更新和查询数据库记录,并检查数据完整性。 2. 添加数据 2.1 使用关键字 使用 INSERT 语句向表中插入数据。使用 VALUES语句添加 2.2 使用情况 2.2…

JetBot手势识别实验

实验简介 本实验目的在JetBot智能小车实现手势识别功能,使用板卡为Jetson Nano。通过小车摄像头,识别五个不同的手势,实现小车的运动及灯光控制。 1.数据采集 连接小车板卡的Jupyterlab环境,运行以下代码块,配置数据…

Vitis HLS 学习笔记--C/C++ static 关键字的作用

目录 1. 简介 2. c/c共有性质 3. c独有性质 4. 示例说明 5. static 对于 HLS 工具的影响 6. 总结 1. 简介 在Vitis HLS中,偶尔会用到 static 关键字。考虑到Vitis HLS同时兼容C和C语言,有必要理解这两种语言中static关键字细微差异。本文旨在梳理…

靠近特定对象才可使用法术

实现目标 只有靠近特定creature | gameobject 才能使用特定技能,否则技能无法使用 实现方法 conditions SourceTypeOrReferenceId:17(CONDITION_SOURCE_TYPE_SPELL)SourceGroup:0SourceEntry:技能ID&am…

Linux cmake 初窥【1】

1.开发背景 linux 下编译程序需要用到对应的 Makefile,用于编译应用程序,但是 Makefile 的语法过于繁杂,甚至有些反人类,所以这里引用了cmake,cmake 其中一个主要功能就是用于生成 Makefile,cmake 的语法更…

常见的css面试题(持续更新,欢迎补充)

目录 1. 什么情况下设置margin会造成margin塌陷? 怎么解决? 2. css的选择器的优先级,怎么判断谁的优先级更高? 总结面试常问的css相关面试题~ 1. 什么情况下设置margin会造成margin塌陷? 怎么解决? 通常遇见margin塌陷&…

AIGC:开启内容创作新纪元,我们如何看待它的影响与前景?

AIGC的概念 AIGC(Artificial Intelligence Generated Content)的概念主要是指人工智能生成内容。 这是一种新的人工智能技术,它利用人工智能模型,根据给定的主题、关键词、格式、风格等条件,自动生成各种类型的文本、图…

Maya vs Blender:制作3D动画首选哪一个?

就 3D 动画而言,有两款3D软件引发了最多的争论:Blender 与 Maya。这两个强大的平台都提供强大的工具集,使动画故事和角色栩栩如生。但作为一名3D动画师,您应该投入时间学习和创作哪一个呢?下面我将从以下六点给您一个清…

SQL优化——全自动SQL审核

文章目录 1、抓出外键没创建索引的表2、抓出需要收集直方图的列3、抓出必须创建索引的列4、抓出SELECT * 的SQL5、抓出有标量子查询的SQL6、抓出带有自定义函数的SQL7、抓出表被多次反复调用SQL8、抓出走了FILTER的SQL9、抓出返回行数较多的嵌套循环SQL10、抓出NL被驱动表走了全…

数据输出(进制、小数位,左对齐右对齐

#include <stdio.h> int main() {int a041; printf("%d\n",a);//33printf("%o\n",a);//41 %o输出八进制&#xff0c;开头不加0printf("%x\n",a);//21 %x输出十六进制&#xff0c;开头不加0Xprintf("%#o\n",a);//…

React学习day01--虚拟DOM的两种创建方式

一、使用js的方式创建虚拟DOM 使用js这种创建虚拟DOM的方式相对jsx来说是繁琐的&#xff0c;如果标签是深层次嵌套&#xff0c;那么书写非常耗时且麻烦。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta …

32个centos常见的命令使用

CentOS 是一个基于 Red Hat Enterprise Linux (RHEL) 的免费企业级操作系统。以下是一些基本的 CentOS 命令&#xff0c;用于日常管理和操作&#xff1a; 这些命令是Linux系统中常用的命令行工具&#xff0c;用于执行各种系统管理任务。下面是对每个命令的详细介绍&#xff0c…

关于豆瓣电影数据抓取以及可视化

首先我们可以先了解以下网络爬虫的定义&#xff1a; 爬虫是一种按照一定的规则&#xff0c;自动地抓取万维网信息的程序或者脚本。它可以在互联网上自动抓取网页内容&#xff0c;将这些信息存储起来。爬虫可以抓取网站的所有网页&#xff0c;从而获取对于我们有价值的信…

企业战略落地:单项目无法解决的,交给项目组合管理

在快速变化的市场环境中&#xff0c;企业对项目管理的需求日益增加&#xff0c;但传统的单项目管理和项目集管理难以满足企业对项目管理的更高要求。随后&#xff0c;项目组合管理方法论逐渐被越来越多的企业运用&#xff0c;并用于指导企业在复杂多变的经营环境下&#xff0c;…

工厂方法模式(模拟发奖多种商品)

目录 定义 模拟发奖多种商品 优惠券 实物商品 第三⽅爱奇艺兑换卡 代码实现 定义发奖接⼝ 实现奖品发放接⼝ 优惠券 实物商品 第三⽅兑换卡 创建商店⼯⼚ 测试验证 定义 在⽗类中提供⼀个创建对象的⽅法&#xff0c; 允许⼦类决定实例化对象的类型。 模拟发奖多…

JVM(Jvm如何管理空间?对象如何存储、管理?)

Jvm如何管理空间&#xff08;Java运行时数据区域与分配空间的方式&#xff09; ⭐运行时数据区域 程序计数器 程序计数器&#xff08;PC&#xff09;&#xff0c;是一块较小的内存空。它可以看作是当前线程所执行的字节码的行号指示器。Java虚拟机的多线程是通过时间片轮转调…

go进行大文件的分块并发处理

以下是我在文心一言获得的答案 我的疑问是&#xff1a;文件的每一行是一条完整的请求数据&#xff0c;文件分块会不会破坏一行的数据呢&#xff1f; 文件的每一行是一条完整的请求数据&#xff0c;当我们将文件按照行分块时&#xff0c;是不会破坏单行数据的完整性的。这是因为…

《HCIP-openEuler实验指导手册》1.5 Apache持久化连接配置

一、知识点 二、配置方法 在/etc/httpd/conf.d目录中创建持久连接相关配置文件keepalived.conf&#xff0c;并添加如下配置信息&#xff1a; KeepAlive On KeepAliveTimeout 20 MaxKeepAliveRequests 500