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

news/2024/11/8 0:45:00/

开源社区必会

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.ppmy.cn/news/571889.html

相关文章

c#winform控件过多卡顿问题解决方案

1.窗体打开时防止窗体闪烁 //C# 窗体程序,窗体上控件过多,会导致打开程序时窗体闪烁,下面有个不错的方法 protected override CreateParams CreateParams { get { CreateParams cp base.CreateParams; cp.…

LNMP架构搭建

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

深入理解微分、积分电路!搞懂PID控制原理就这么简单!

很多朋友觉得PID是遥不可及,很神秘,很高大上的一种控制,对其控制原理也很模糊,只知晓概念性的层面,知其然不知其所以然,那么本期从另类视角来探究微分、积分电路的本质,意在帮助理解PID的控制原…

最最简单区别iPhone是港版还是国行

要想分辨所购买iPhone是大陆行货、水货、港货还是其它,其实很简单。 下面是最简单的方法区别: 1.序列号:港版以zp/A结尾,国行以CH/A结尾.(J--日本;HK或ZP--香港;US或LL--美国;UK--英国;TA-- 台湾;CH--…

iPad 2下月登陆香港 水货应声降价

南都讯记者朱菂发自香港价格居高不下的iPad2水货市场风云突变。美国苹果公司22日说,新一代苹果平板电脑iPad2定于4月登陆中国香港、新加坡、韩国等地。不过,苹果公司没有公布iPad2香港上市的具体日期。消息传来,水货市场提前受到冲击。昨日&a…

苹果开发者 安卓开发者 谷歌广告Admob 跨境电商 海外收款和收取美金方法

转载请标明来源,谢谢。 苹果开发者和谷歌Admob用户,或者做跨境电商的小伙伴们,一般会用什么样的收款方式来收取在国外赚到的美金呢?前段时间了解了一下,在这里介绍给大家,主要有下面这几种: 一…

苹果cms v10版本搭建影视网站详细教程

为什么要搭建这个网站:因为最近闲的无聊,想追点美剧,但是自己想看的美剧在腾讯视频这些上面又没有完整的,然后去一些网站看的,要不然就是垃圾广告多,要不然就是看一会卡一会,无奈之下就决定搭建…

mac 香港购买分享

2019独角兽企业重金招聘Python工程师标准>>> 写文章的目的是给那些想去香港买Mac的同学,共享一下信息,毕竟去香港会便宜些,码代码不容易,省点钱好找媳妇。自己购买Mac的动机,之前一直喜欢Mac,碍…