开源社区必会知识点— —git提交pr

news2024/11/8 5:51:44

开源社区必会

1 fork仓库并提交之后给开源社区提交pr

1.1 fork开源仓库

①登录github,找到开源仓库A,然后点击fork
在这里插入图片描述

这样,就会在你自己github账号下创建一个同名的仓库B(仓库名可修改)

②然后本地修改,提交到自己的github账号下的那个B仓库

1.2 将本地多个commit合并为1个

一般来说,开源社区提交pr都是需要合并为一个commit的

  1. 比如,我现在有4个commit:
85d5d8fa468b06bb9a62fafde01d80cbb7396682 # 我改的

621ca4121f971d9604e395556763551427d799d9 # 我改的

f744d2e91916ab7831f3a7695d1d1825916db164 # 我改的

5c135e49e683563fa470d7f5c281050ec1d73af9 # 我改的

295ac3b842b4ecb6eff1c9954a281a4606a8bc84 # 别人改的
  1. 我现在想把我提交的commit合并为1个
8403afe13664d6bb7f5a5557716a030e9389a944 # 我改的

295ac3b842b4ecb6eff1c9954a281a4606a8bc84 # 别人改的
  1. 具体操作方法

1.2.1 方法一:合并commitID

先从版本库回退内容到暂存区,再重新提交工作区的内容

  • 思路:使用 git reset --soft 回退版本库和暂存区的版本,同时保留工作区的变动,之后再重新提交工作区的内容就好了。
# 查看前10个commit【找到别人最后一次提交的位置】
git log -10
# 从版本库恢复文件到暂存区,不改动工作区的内容
git reset --soft 295ac3b842b4ecb6eff1c9954a281a4606a8bc84	# 别人改的commitID
# add已经跟踪的文件
git add -u
# 提交
git commit -m "修改信息"
# 强制push以替换远程仓的commitID
git push --force

如果push失败,出现Reject,则需要开启分支强制合入的选项,取消分支保护。

  • Settings -> Repository -> Protected Branches -> Protected branch (找到分支) -> Unprotect

1.2.2 方法二:git rebase

# 查看前10个commit
git log -10
# 将4个commit压缩成一个commit
git rebase -i HEAD~4	
# add已经跟踪的文件
git add -u
# 提交
git commit -m "修改信息"
# 强制push以替换远程仓的commitID
git push --force

注意:git rebase临时创建一个新分支进行,如果弄着出错了,可以 git checkout 原分支名 切换回原分支之后重新 git rebase。

git rebase具体演示:

我想合并前四个 commit 到最后一个。如下所示:

①git log 查看历史提交信息
在这里插入图片描述
②git rebase -i HEAD~n

使用 git rebase -i HEAD~5 压缩5个commit为1个,或者git rebase -i 51efaef517abdbf674478de6073c12239d78a56a (第一个commit的id)

vim编辑器,按i编辑,将后4个commit的pick修改为fixup,保留第一个pick。按esc键,输入:wq保存退出。

  • pick:使用commit。

  • reword:使用commit,修改commit信息。

  • squash:使用commit,将commit信息合入上一个commit。

  • fixup:使用commit,丢弃commit信息。
    在这里插入图片描述
    操作完之后,发现commit都合并成了一个。
    在这里插入图片描述
    ③git push --force 提交
    在这里插入图片描述

1.3 提交pr

A:代表开源社区的仓库,B:代表你自己fork下来的仓库

  1. 在自己fork下来的B仓库中,创建一个pull request:
    在这里插入图片描述
  2. 填写pr信息
    在这里插入图片描述
  3. 填写注释信息
    在这里插入图片描述

参考:
https://blog.csdn.net/Spade_/article/details/108698036
https://blog.csdn.net/u012435142/article/details/89491388

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

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

相关文章

[RocketMQ] Consumer消费者启动主要流程源码 (六)

客户端常用的消费者类是DefaultMQPushConsumer, DefaultMQPushConsumer的构造器以及start方法的源码。 1.创建DefaultMQPushConsumer实例 最终都是调用下面四个参数的构造函数: /*** 创建DefaultMQPushConsumer实例** param namespace namespace地址* par…

调用聚合数据API实现手机号码归属地查询

调用聚合数据API实现手机号码归属地查询 1.作者介绍2.相关介绍2.1 什么是聚合数据?2.2 API介绍2.3 手机号码归属地 3.实验过程3.1如何调用聚合数据API3.2代码实现3.3实验结果3.4问题分析 1.作者介绍 吝红凯&#xff0…

Python+requests+unittest+excel搭建接口自动化测试框架

一、框架结构: 工程目录 代码:基于python2编写 二、Case文件设计 三、基础包 base 3.1 封装get/post请求(runmethon.py) import requests import json class RunMethod:def post_main(self,url,data,headerNone):res Noneif h…

【C++】一些关于visual stdio,vscode,Mingw的思考 |bug

文章目录 今天在做YOLOV8的C部署时遇到的一些问题: 在进行一系列的操作之后会生成解决方案文件sln: 当然按道理到这一步之后,应该使用make命令进行下一步操作(但是我确实不会make命令,所以准备进sln来生成解决方案)&…

缓存和数据库一致性问题,看这篇就够了

阅读本文大约需要 10 分钟。 如何保证缓存和数据库一致性,这是一个老生常谈的话题了。 但很多人对这个问题,依旧有很多疑惑: 到底是更新缓存还是删缓存? 到底选择先更新数据库,再删除缓存,还是先删除缓存…

消息队列详解

文章目录 1、什么是消息队列2、使用场景3、消息队列与传统设计的区别1、传统设计2、并行处理调优3、消息队列 4、三大优点1、异步2、削峰3、解耦 5、缺点1、增加了系统复杂性。2、事务问题。3、可用性 6、MQ常见问题1、消息堆积问题怎么解决2、重复消费问题怎么解决3、如果避免…

消息队列Message Queue 0基础学习

一、定义 消息队列:一般我们会简称它为MQ(Message Queue)。Message Query(MQ),消息队列中间件,很多初学者认为,MQ通过消息的发送和接受来实现程序的异步和解耦,mq主要用于异步操作,…

高效精细的企业发票管理:探索优质方案助力您提升财务效率

随着企业逐渐规范化,财务工作流程暴露了不足,在企业员工报销管理工作中常遇到以下问题: 1. 报销发票种类繁多,管理麻烦费时; 2. 手动合计报销金额费时费力、并且易出错; 3. 报销流程繁杂,填写…

【软考网络管理员】2023年软考网管初级常见知识考点(5)-以太网技术

涉及知识点 CSMA/CD技术,以太网帧结构,冲突域和广播域,高速以太网,交换式以太网,软考网络管理员常考知识点,软考网络管理员网络安全,网络管理员考点汇总。 文章目录 涉及知识点前言一、CSMA/CD…

【CV】常见的损失函数及应用举例:交叉熵、对比、余弦、Dice、Focal Loss

目录 前言均方误差(MSE)交叉熵损失(Cross-Entropy Loss)对比损失(Contrastive Loss)余弦相似度损失(Cosine Similarity Loss)交叉熵损失加权的Dice损失(Dice Loss&#x…

【接口自动化测试】如何进行流程封装和基于加密接口的测试用例设计?

接口测试仅仅掌握 Requests 或者其他一些功能强大的库的用法,是远远不够的,还需要具备能根据公司的业务流程以及需求去定制化一个接口自动化测试框架的能力。所以,接下来,我们主要介绍下接口测试用例分析以及通用的流程封装是如何…

何为SaaS?国内做的好的SaaS平台有哪些?

国内做得好的saas平台有哪些啊? 什么是SaaS平台? SaaS是Software as a Service的缩写,意为软件即服务。 它是指将软件应用程序部署在云计算服务器上,通过网络提供给用户的一种模式。这个模式下,用户无需花费大量的资…

LNMP架构搭建

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、LNMP概述1.LNMP的特点2.LNMP工作原理 二、安装Nginx 服务1.安装需要的依赖包2.创建运行用户3.编译安装4.优化路径5.添加 Nginx 系统服务 三、安装mysql服务1.安…

机房如何选购STS静态转换开关,采购配置并上架投入使用

环境: 1.机房交换机设备 2.STS静态转换开关 3.16安4平方电源插头 4.6平方输入连接线 5.大功率接线器(3进3出) 6.PDU(C14插头) 问题描述: 机房如何选购STS静态转换开关,采购配置并上架投入使用 目前痛点 机房有些设备单电源,无法接入UPS,停电了就无法正常工作,为…

Java-String、StringBuffer、StringBuilder区别及相关面试题

目录 一、引言二、String类的基本介绍2.1 创建String对象2.2 字符串的拼接和连接2.3 字符串的比较2.4 字符串的截取和替换2.5 字符串的查找和匹配2.6 创建格式化字符串API文档 三、StringBuffer类的基本介绍3.1 创建StringBuffer对象3.2 字符串的拼接和连接3.3 字符串的插入和删…

DDD概念以及微服务划分

目录 DDD简介: DDD与微服务的区别: DDD核心概念: 如何划分微服务边界: DDD简介: DDD 是 Domain-Driven Design 的缩写,称为领域驱动设计。它是为了解决划分业务边界的问题,是一种架构模式,也是一种划分…

Node.js安装教程,2023最新版,保姆级安装教程

Node.js安装教程2023最新版 资源准备 在官网中下载对应版本的node.js 官方连接:https://nodejs.org/en/download Node.js安装配置 下载完成安装包后,打开安装程序 配置好安装路径,无脑下一步至这个页面,这个不需要勾选 就这样…

从《新华三2023十大技术趋势白皮书》,看见前沿技术的“实体”回归

文|智能相对论 作者|李永华 在“新技术革命”的全球预期下,前沿技术创新的步伐不断加速。 下一步,哪些技术趋势将凸显出来,哪些场景将被数字经济深度改变,哪些场景将带来如同科幻世界般的技术应用……这些是从产业界到普罗大众…

BurpSuite安装教程以及环境配置(附安装包)

前言 Burp Suite 是用于攻击web 应用程序的集成平台。它包含了许多Burp工具,这些不同的burp工具通过协同工作,有效的分享信息,支持以某种工具中的信息为基础供另一种工具使用的方式发起攻击。 它主要用来做安全性渗透测试,可以实…

通过使用Mybatis插件来实现数据的分页功能

目录 背景一、SpringBoot的后端1、手动拼接SQL来实现2、使用Mybatis插件来实现 二、Vue-cli的前端:请求响应跟踪 三、在使用Mybatis插件进行多表查询(表数大于2)出现的问题1. SQL解决2.后端查询方式改变成嵌套查询 四、 分页总结 背景 分页: 如果一次性的查询全部数据, 响应时…