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

news/2024/7/10 20:50:11 标签: git, 开源, github, 提交pr, 开源社区

开源社区必会

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

git_rebase_52">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.niftyadmin.cn/n/467224.html

相关文章

如何与西门子200 PLC建立连接

更多关于西门子S7-200PLC内容请查看:西门子200系列PLC学习课程大纲 与西门子200 PLC建立连接很简单,分为以下几步: 1.给S7-200PLC通电 按下图1-1所示连接PLC端口,然后给PLC供电,有直流24V和交流220V两种供电方式&am…

Docker搭建Hadoop集群

目录 1.拉取centos镜像 2.基础镜像配置(基于centos构建hadoopbase镜像) 3.集群环境配置 1.创建3个容器 2.配置网络 3.配置主机和ip的映射关系 4.配置3个节点的免密登录 4.搭建hadoop集群 1.安装hadoop 2.修改配置文件 3.分发Hadoop及配置文件my_env.sh 5.启动集群 …

MySQL数据库连接查询和存储过程

MySQL数据库连接查询和存储过程 一、连接查询1、内连查询2、左连接3、右链接 二、存储过程1、存储过程简介2、存储过程的优点3、语法3.1 参数分类3.2 不加参数的存储过程3.3 带参数的存储过程3.4删除存储过程3.5 事务和存储过程有什么区别? 三、总结1、连接查询2、存…

TiDB 7.1资源管控和Oceanbase 4.0多租户使用对比

作者: seiang 原文来源: https://tidb.net/blog/a33d3498 一、背景 TiDB和Oceanbase都是非常优秀的国产分布式数据库;公司从2021年第一套生产业务的TiDB集群落地,随着第一套TiDB生产集群的落地,主要面向不同的业务…

区块链四种类型的节点:全节点、超节点、轻节点和挖掘节点,比特币节点如何验证一个区块,CheckBlock函数

目录 区块链四种类型的节点:全节点、超节点、轻节点和挖掘节点 挖掘节点 满节点和超节点

文心一言 VS 讯飞星火 VS chatgpt (47)-- 算法导论6.1 5题

五、一个已排好序的数组是一个最小堆吗? 文心一言: 一个已排好序的数组不一定是一个最小堆。最小堆是一种特殊的二叉树,它满足以下性质:对于任意节点 x,其父节点 y 的值都小于等于 x 的值。而一个已排好序的数组只是一个有序数…

【unity每日一记】那些动作基础你还记得吗—移动和旋转相关

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:uni…

Java日期API

文章目录 1 传统日期类1.1 Date类1.2 SimpleDateFormat类1.3 Calendar类 2 JDK8新增日期类2.1 LocalDate2.2 LocalTime2.3 LocalDateTime2.4 日期时间操作2.5 Instant2.6 Demo06DateTimeFormat2.7 Period2.8 Duration2.9 ChronoUnit 1 传统日期类 1.1 Date类 import java.uti…