当前位置: 首页 > news >正文

Github提交Pull Request教程 Git基础扫盲(零基础易懂)

1 PR是什么?

PR,全称Pull Request(拉取请求),是一种非常重要的协作机制,它是 Git 和 GitHub 等代码托管平台中常见的功能,被广泛用于参与社区贡献,从而促进项目的发展。

PR的整个过程:如果想给别人的开源仓库贡献代码,通常是先 fork 别人的项目,,然后本地修改完成提交到自己的个人 fork 仓库, 最后提交 PR ,等待别人合入你的代码。

2 fork、clone、branch?

2.1 fork

Git仓库中,fork代表分叉,克隆某个仓库,形成新拷贝。

fork包含了原来的仓库(即upstream repository,上游仓库)所有内容,如分支、Tag、提交,如果想将你的修改合并到原项目中时,可以通过的 Pull Request 把你的提交贡献回原仓库。

  • 使用方法:

github发现感兴趣项目的时候,可以通过点击github仓库中右上角fork标识的按钮,如下图:

img

  • 点击这个操作后会将这个仓库的文件、提交历史、issues和其余东西的仓库复制到自己的github仓库中,而你本地仓库是不会存在任何更改。

  • 然后你就可以通过git clone对你这个复制的远程仓库进行克隆。

  • 后续更改任何东西都可以在本地完成,如git addgit commit一系列的操作,然后通过push命令推到自己的远程仓库。

  • 如果希望对方接受你的修改,可以通过发送pull requests给对方,如果对方接受。则会将你的修改内容更新到仓库中。

整体流程如下图:

image-20241201213839594

2.2 clone

clone的作用是将文件从远程代码仓下载到本地,从而形成一个本地代码仓。

执行clone命令后,会在当前目录下创建一个名为【仓库名】的目录,并在这个目录下初始化一个 .git 文件夹,然后从中读取最新版本的文件的拷贝。默认配置下远程 Git 仓库中的每一个文件的每一个版本都将被拉取下来。

2.3 branch

branch,译为分支,其作用简单而言就是开启另一个分支, 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。

Git 处理分支的方式十分轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷。

在我们开发中,默认只有一条master分支,如下图所示:

image-20241201210919706

通过git branch可以创建一个分支,但并不会自动切换到新分支中去。

下图表示创建了一个分支——testing,其中HEAD表示当前分支:

image-20241201210858382

通过git checkout可以切换到另一个testing分支:

image-20241201211038039

Git 删除分支——如何删除本地或远程分支_git 删除本地分支-CSDN博客

2.4 三者区别

  • fork 只能对代码仓进行操作,且 fork 不属于 git 的命令,通常用于代码仓托管平台的一种“操作”;

  • clone是 git 的一种命令,作用是将文件从远程代码仓下载到本地,从而形成一个本地代码仓;

  • branch 特征与 fork 很类似,fork 得到的是一个新的、自己的代码仓,而 branch 得到的是一个代码仓的一个新分支;

3 在Github上提交PR

基本流程:

在这里插入图片描述

3.1 Fork

FORK 目标仓库<xx.github.io>到您的仓库,相当于得到一个可以修改的拷贝,地址为 :

https://github.com/<your-username>/xx.github.io

3.2 Clone

CLONE 您自己的仓库到本地。

git clone https://github.com/<your-username>/seu.github.io.git

然后,您可以创建新的分支来完成您想要做的修改。

3.3 提交Pull Request

进入目录:

cd xx.github.io

设置 Remote为 https://github.com/SEU-Master/seu.github.io,使用以下两个命令:

git remote add upstream https://github.com/SEU-Master/seu.github.io
git remote set-url --push upstream no-pushing

配置好远程仓库后,您可以通过【git remote -v】命令检查您的 git 远程配置:

$ git remote -v
origin     https://github.com/<your-username>/seu.github.io.git (fetch)
origin     https://github.com/<your-username>/seu.github.io.git (push)
upstream   https://github.com/SEU-Master/seu.github.io (fetch)
upstream   no-pushing (push)

配置好这些后,您可以轻松地将本地分支与上游分支同步。

命令行提交PR:
  1. 创建分支 用于添加新特性或修复问题

    更新本地工作目录和远程 Fork 仓库:

    cd seu.github.io
    git fetch upstream
    git checkout main  # 选择main分支

    创建一个新的分支:

    git checkout -b s3di-lab  # 创建名为s3di-lab的新分支
    git checkout s3di-lab     #切换到此分支

    在新分支上进行更改,之后构建并测试代码。

    git branch # 查看当前分支
  2. 提交更改 到本地分支,提交前请进行 lint 检查,并进行签名提交:

    git rebase upstream/,分支名git add <file_or_directory>  # 将更改添加到暂存区
    git commit -s -m "message for your changes" # 上传文件并添加标签

    image-20241202002318172

    若出现如下报错,设置账号密码即可。

    wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

    编辑

  3. 推送分支 到您的 Fork 仓库,建议每个 PR 只包含一次提交:

    # 与上游同步
    git fetch upstream main
    git rebase upstream/main
  4. 提交拉取请求 (PR)

    提交 PR 前,建议先审查一下您的更改,确保您的代码与主分支没有冲突,并且没有包含冗余的代码。

网页提交PR:

在自己fork的仓库中进行,先添加文件再在跳出的【Compare & pull request】中PR即可。

image-20241202001305848

4 参考

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

Github提交PR与修改pr_github 修改pr-CSDN博客

相关文章:

Github提交Pull Request教程 Git基础扫盲(零基础易懂)

1 PR是什么&#xff1f; PR&#xff0c;全称Pull Request&#xff08;拉取请求&#xff09;&#xff0c;是一种非常重要的协作机制&#xff0c;它是 Git 和 GitHub 等代码托管平台中常见的功能&#xff0c;被广泛用于参与社区贡献&#xff0c;从而促进项目的发展。 PR的整个过…...

Java函数式编程【二】【Stream的装饰】【中间操作】【map映射器】【摊平映射器flatMap】

一、Java的Stream流式编程中的中间操作 Java的Stream流式编程中&#xff0c;中间操作是对数据流进行处理的一种方式&#xff0c;这些操作通常返回流对象本身&#xff0c;以便可以链接更多的操作。以下是一些常见的中间操作&#xff1a; filter(Predicate predicate) - 用于通过…...

树莓派明明安装了opencv和numpy,却找不到

当然不止树莓派&#xff0c;配置python环境都可能存在这个问题 可能是因为安装的 numpy 或者 opencv 版本与 Python 的包路径不匹配。下面是问题的常见原因及解决方法&#xff1a;【方法一和二优先考虑】 原因分析 多版本 Python 环境冲突&#xff1a; 树莓派上可能有多个版本…...

numpy.float8不存在;Python中,实现16位浮点数

目录 python中矩阵的浮点数存储 numpy.float8不存在 Python中,实现16位浮点数 实现 float16 关于 float8 python中矩阵的浮点数存储 在Python中,矩阵通常是通过嵌套列表(list of lists)、NumPy数组(numpy.ndarray)或其他类似的数据结构来表示的。矩阵中存储的数值所…...

Redis集群配置 (不使用docker 部署)

1. Redis集群简介 1.1 什么是Redis集群 Redis集群是一种通过将多个Redis节点连接在一起以实现高可用性、数据分片和负载均衡的技术。它允许Redis在不同节点上同时提供服务&#xff0c;提高整体性能和可靠性。根据搭建的方式和集群的特性&#xff0c;Redis集群主要有三种模式&…...

HTML5系列(7)-- Web Storage 实战指南

前端技术探索系列&#xff1a;HTML5 Web Storage 实战指南 &#x1f5c4;️ 致读者&#xff1a;本地存储的新纪元 &#x1f44b; 前端开发者们&#xff0c; 今天我们将深入探讨 HTML5 中的 Web Storage 技术&#xff0c;这是一个强大的本地存储解决方案&#xff0c;让我们能…...

【在Linux世界中追寻伟大的One Piece】读者写者问题与读写锁

目录 1 -> 读者写者问题 1.1 -> 什么是读者写者问题 1.2 -> 读者写者与生产消费者的区别 1.3 -> 如何理解读者写者问题 2 -> 读写锁 2.1 -> 读写锁接口 3 -> 读者优先(Reader-Preference) 4 -> 写者优先(Writer-Preference) 1 -> 读者写者…...

用到动态库的程序运行过程

当我们写好了一段代码然后编译运行后会生成可执行文件&#xff0c;该文件会存在磁盘的当前目录下&#xff0c;而当我们开始运行这段程序时&#xff0c;操作系统&#xff08;加载器&#xff09;需要将其从磁盘加载进内存然后执行相关操作&#xff0c;而对于用到动态库的程序&…...

类型转换与IO流:C++世界的变形与交互之道

文章目录 前言&#x1f384;一、类型转换&#x1f388;1.1 隐式类型转换&#x1f388;1.2 显式类型转换&#x1f381;1. C 风格强制类型转换&#x1f381;2. C 类型转换操作符 &#x1f388;1.3 C 类型转换操作符详解&#x1f381;1. static_cast&#x1f381;2. dynamic_cast&…...

Pytorch使用手册- TorchVision目标检测微调Tutorial的使用指南(专题十二)

这篇教程的目标是对一个预训练的 Mask R-CNN 模型进行微调,应用于 Penn-Fudan 行人检测与分割数据集。该数据集包含 170 张图像,里面有 345 个行人实例,我们将通过这个教程来演示如何使用 torchvision 中的新特性,训练一个面向自定义数据集的目标检测和实例分割模型。 注意…...

人工智能机器学习算法分类全解析

目录 一、引言 二、机器学习算法分类概述 &#xff08;一&#xff09;基于学习方式的分类 1. 监督学习&#xff08;Supervised Learning&#xff09; 2. 无监督学习&#xff08;Unsupervised Learning&#xff09; 3. 强化学习&#xff08;Reinforcement Learning&#xf…...

Linux 35.6 + JetPack v5.1.4@DeepStream安装

Linux 35.6 JetPack v5.1.4DeepStream安装 1. 源由2. 步骤Step 1 安装Jetpack 5.1.4 L4T 35.6Step 2 安装依赖组件Step 3 安装librdkafkaStep 4 安装 DeepStream SDKStep 5 测试 deepstream-appStep 6 运行 deepstream-app 3. 总结3.1 版本问题3.2 二进制help 4. 参考资料 1. …...

图数据库 | 11、图数据库架构设计——高性能图存储架构(下)

在上篇内容中&#xff0c;老夫着重讲了高性能图存储系统的特点&#xff0c;咱们继续往下讲重点——高性能存储架构的设计思路&#xff01;&#xff01; 2.高性能存储架构设计思路 首先呢&#xff0c;存储架构以及核心数据结构的设计思路通常围绕如下4个维度来进行&#xff1a…...

【HTTP】HTTP协议

一个Web Server就是个服务器软件&#xff08;程序&#xff09;&#xff0c;或者是运行这个服务器软件的硬件&#xff08;计算机&#xff09;&#xff0c;其主要功能是通过HTTP协议与客户端进行通信&#xff0c;来接收&#xff0c;存储&#xff0c;处理来自客户端的HTTP请求&…...

大数据新视界 -- Hive 基于 MapReduce 的执行原理(上)(23 / 30)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...

SpringBoot源码解析(六):打印Banner

SpringBoot源码系列文章 SpringBoot源码解析(一)&#xff1a;SpringApplication构造方法 SpringBoot源码解析(二)&#xff1a;引导上下文DefaultBootstrapContext SpringBoot源码解析(三)&#xff1a;启动开始阶段 SpringBoot源码解析(四)&#xff1a;解析应用参数args Sp…...

【计算机网络】实验6:IPV4地址的构造超网及IP数据报

实验 6&#xff1a;IPV4地址的构造超网及IP数据报 一、 实验目的 加深对IPV4地址的构造超网&#xff08;无分类编制&#xff09;的了解。 加深对IP数据包的发送和转发流程的了解。 二、 实验环境 • Cisco Packet Tracer 模拟器 三、 实验内容 1、了解IPV4地址的构造超网…...

easy excel 生成excel 文件

导包 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.3.3</version> </dependency> 内容 List<类> limspjreport 值; String fileName sdf.format(new Date()) "-…...

Ajax:回忆与节点

一点回忆 面对我的Ajax学习&#xff0c;实现前后端交互&#xff0c;最开始我采用的使用网络寻找intellij IDEA Ultimate破解方法&#xff0c;然后最终成功&#xff0c;然后按照相关教程配置java ee项目&#xff0c;然后中间又去配置了Tomcat服务器&#xff0c;然后又去学习了一…...

Python+OpenCV系列:Python和OpenCV的结合和发展

PythonOpenCV系列&#xff1a;Python和OpenCV的结合和发展 **引言****Python语言的发展****1.1 Python的诞生与发展****1.2 Python的核心特性与优势****1.3 Python的应用领域** **OpenCV的发展****2.1 OpenCV的起源与发展****2.2 OpenCV的功能特性****2.3 OpenCV的应用场景** *…...

新手避坑指南:用Virtuoso和Calibre做DRC/LVS检查时,IO Pad和电源连接的那些坑

数字后端验证实战&#xff1a;Virtuoso与Calibre中的DRC/LVS避坑指南 第一次用Virtuoso和Calibre做DRC/LVS检查的新手工程师&#xff0c;往往会在IO Pad和电源连接上栽跟头。这些看似基础的问题&#xff0c;轻则导致验证失败&#xff0c;重则影响芯片功能。本文将结合SIMC 0.18…...

五层智能引擎架构:illustrator-scripts如何实现设计自动化效能革命

五层智能引擎架构&#xff1a;illustrator-scripts如何实现设计自动化效能革命 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 在数字化设计领域&#xff0c;设计师平均花费31.2%的…...

第13天:常用数据结构之字典

Python学习100天(从入门到精通系列文章) 文章目录 Python学习100天(从入门到精通系列文章) 前言 一、为什么需要字典? 1.1 列表、元组、集合的局限性 1.2 字典的优势 二、创建和使用字典 2.1 使用字面量语法创建字典 2.2 使用 dict 函数创建字典 三、字典的常用操作 3.1 访…...

【源码深度】Android 屏幕渲染底层原理|SurfaceFlinger + 渲染流水线 + 刷新率适配 + 帧率卡顿根治|Android 全栈体系 150 讲 - 42

...

从泡泡实验室到阿木社区:PX4开发者如何在国内技术圈子里快速成长?

从泡泡实验室到阿木社区&#xff1a;PX4开发者如何在国内技术圈子里快速成长&#xff1f; 在无人机开源飞控领域&#xff0c;PX4和Pixhawk已经成为开发者绕不开的技术栈。但相比国外活跃的开发者社区&#xff0c;国内的技术生态往往让新手感到无从下手——百度贴吧的讨论碎片化…...

Avogadro 2:开源分子可视化库的终极技术解析

Avogadro 2&#xff1a;开源分子可视化库的终极技术解析 【免费下载链接】avogadrolibs Avogadro libraries provide 3D rendering, visualization, analysis and data processing useful in computational chemistry, molecular modeling, bioinformatics, materials science,…...

通过Taotoken CLI工具一键为团队统一配置开发环境

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过Taotoken CLI工具一键为团队统一配置开发环境 在团队协作开发中&#xff0c;为新成员配置统一的AI模型调用环境常常是个繁琐的…...

Harness层数据清洗自动化

Harness层数据清洗自动化:解放数据团队生产力的核心方案 开篇引子 上周我帮一家年GMV超20亿的电商客户排查数据故障,他们的数仓团队反馈连续3天的用户订单报表交易额比实际支付金额少了1200万,排查了3个小时才定位到根因:新接入的外卖业务系统的订单状态字段新增了枚举值6…...

避开这些坑!用Unity做Flappy Bird时,我遇到的5个典型问题及解决方案

避开这些坑&#xff01;用Unity做Flappy Bird时&#xff0c;我遇到的5个典型问题及解决方案 第一次用Unity复现Flappy Bird这类经典小游戏时&#xff0c;本以为跟着教程一步步操作就能顺利完成&#xff0c;结果从素材导入到最终发布的每个环节都暗藏玄机。特别是当教程只展示&q…...

3步解决Windows 10/11下PL-2303串口设备驱动失效问题

3步解决Windows 10/11下PL-2303串口设备驱动失效问题 【免费下载链接】pl2303-win10 Windows 10 driver for end-of-life PL-2303 chipsets. 项目地址: https://gitcode.com/gh_mirrors/pl/pl2303-win10 你是否遇到过这样的情况&#xff1a;在Windows 10或Windows 11系统…...