Github 上如何提交 pull request

news2024/9/22 5:24:38

什么是复刻(forking)?
我们可以通过复刻操作将喜爱的仓库保存自己的Github账户中,以便独立地对其进行操作。
通过复刻,我们可以得到包含完整版本历史的目标仓库的实例,之后可以对复刻得到的仓库进行任意操作而不会影响到原始仓库。
具体操作可以查看我的上一篇文章:Github Fork的使用

什么是拉取请求(pull request)?
拉取请求是为团队项目或开源项目做贡献的一种方式。

例如,一个名为Harry forks的用户复刻了一个属于ThanoshanMV的仓库并对其做了一些变更,Harry可以向ThanoshanMV发起一个拉取请求,不过是否接受取决于ThanoshanMV。这就好像是在说:“ThanoshanMV,你可以拉取我所做的变更吗?”。

为开源项目做贡献
除了编写代码,还有许多其他方式可以为开源项目做贡献。下面介绍一些可选的贡献方式。

唯视锐 公司的骇客入门指南为我们介绍了以下几种为开源项目做贡献的方式:

设计工作:构建整个项目的布局,提升可用性,提升导航和菜单的用户体验,创作项目logo、3D打印和艺术T恤,提供样式指导等。

文档工作:编写、完善或者翻译项目文档,编写项目相关的时事通讯,编写教程,筛选邮件列表中的亮点内容,创建项目使用示例合辑等。

整理工作:链接重复的议题,提议新的议题标签,提议关闭过时的未解决议题,针对近期的议题抛出问题以推动相关讨论。

提供帮助:在议题下解答问题,审查他人提交的代码,为其他贡献者提供指导。

编写代码:协助解决议题中提及的问题,询问是否需要自己提供帮助来增加新的功能特性或改进工具和测试流程。
创建第一个拉取请求!
如果你还不太熟悉 Git 和 GitHub, 请查看 The beginner’s guide to Git & GitHub.
1. 复刻仓库
点击页面顶部的“fork”按钮即可复刻仓库,这将在你的账户中创建此仓库的完整实例。
在这里插入图片描述
2. 克隆仓库
现在你的账户中已经包含了这个仓库,将它克隆到本地来进行编辑。

点击“clone”按钮,复制下面的链接。
在这里插入图片描述
打开终端并执行如下命令,把仓库克隆到本地。

$ git clone [HTTPS ADDRESS]

现在我们建立了远程仓库的master分支的一个副本。

运行如下命令,进入项目目录:

$ cd [NAME OF REPOSITORY]

在这里插入图片描述
3. 创建一个分支
不管是对于小项目还是团队协作的项目,使用仓库时,最好新建一个分支。

分支名称应该保持简短,并且能够反映我们所做的工作。
使用 git checkout 命令来创建一个分支:

$ git checkout -b [Branch Name]

在这里插入图片描述
4. 进行更改并提交
对项目进行必要的更改并保存。

执行 git status , 查看变更。
在这里插入图片描述执行 git add 命令,将这些变更加入到刚刚创建的分支:

$ git add .

在这里插入图片描述
使用 git commit 提交这些变更:

$ git commit -m "Adding an article to week 02 of articles of the week"

在这里插入图片描述
5. 把变更推送到Github
在推送变更之前先确认远程库的名称。

$ git remote

在这里插入图片描述
当前仓库对应的远程库名称是“origin”。

确认了远程库的名称之后,可以放心的把变更推送到Github。

git push origin [Branch Name]

在这里插入图片描述
6. 创建拉取请求
在Github仓库中可以看到一个“Compare & pull request”按钮,点击它。
在这里插入图片描述
请提供必要的说明来介绍你所做的变更(可以使用“#”来引用议题)。提交拉取请求。

恭喜!你已经成功创建了第一个拉取请求。
在这里插入图片描述
如果拉取请求被接受的话,你将会收到邮件通知。
7. 同步复刻的master分支
在向原始仓库提交拉取请求之前,必须先将原始仓库的最新内容同步到本地仓库。

即使没打算提交拉取请求也应该及时同步,因为自你复刻仓库之后,原始仓库中的项目可能添加了一些新的功能特性或者修复了一些bug。

按照以下步骤来更新你的master分支:

1.首先查看当前所在分支。

$ git branch

在这里插入图片描述
这将列出所有分支,并以绿色来指明当前或活动分支。
2. 切换到master分支。

$ git checkout master

在这里插入图片描述
3. 将原始仓库添加为upstream仓库。

为了能够拉取原始仓库的变更到你的复刻仓库中,需要将原始仓库添加为upstream仓库。

$ git remote add upstream [HTTPS]

这里的 [HTTPS] 是你从原始仓库页面复制的URL。
在这里插入图片描述
4. 获取原始仓库的变更

从原始仓库获取变更,所有提交到原始仓库的变更将会保存在本地的upstream/master分支中。

$ git fetch upstream

在这里插入图片描述
5. 合并变更

将upstream/master分支中的变更合并到本地的master分支,这样就能够做到让本地的master分支与原始仓库保持同步的同时保留本地变更。

$ git merge upstream/master

6. 把变更推送到Github

现在你的本地分支已经与原始仓库的master分支同步了。如果想更新Github仓库,需要把变更推送到Github。

$ git push origin master

注意: 在同步了master分支之后,可以移除upstream仓库。不过以后同步的时候还会用到,所以最好留着它。
在这里插入图片描述

$ git remote rm [Remote Name]

7. 删除无用的分支
创建分支是为了完成一些特定目标,目标完成之后,这些分支就没必要继续存在了,可以删除掉。

$ git branch -d [Branch Name]

在这里插入图片描述
Github上的无用分支也可以删除。

git push origin --delete [Branch Name]

在这里插入图片描述
总结
Github是一个强大的版本历史控制工具,每一个人都可通过发起拉取请求来为开源项目做贡献,而且除了编写代码之外还有许多方式可以做出贡献。

最后要说的是,如果你的拉取请求没有被接受也不要感到困惑,维护者们花费了大量的时间精力来优化项目,他们比我们更加了解整个项目,所以他们知道如何做出合理选择。

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

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

相关文章

iTOP3588开发板直连电脑配置方法(无线上网)配置主机IP

首先使用网线连接好主机和开发板,在没有上电的情况下,可以看到以太网显示网络电缆 被拔出,如下图所示: 当开发板上电以后,开发板网卡与笔记本电脑的网卡会连接,如下图所示: 然后右键点击以太网…

MY2480-16P语音模块的使用

MY2480-16P语音模块的使用开发环境:STM32CUBEMXKEIL5辅助软件:串口助手、迅捷文字转语音一、MY2480-16P语音模块引脚图及引脚定义二、选择触发方式三、使用串口控制MY2480-16P语音模块四、模块使用指南开发环境:STM32CUBEMXKEIL5 辅助软件&a…

Python解题 - CSDN周赛第28期

上一期周赛问哥因为在路上,无法参加,但还是抽空登上来看了一下题目。4道题都挺简单的,有点遗憾未能参加。不过即使参加了,手速也未必能挤进前十。 本期也是一样,感觉新增的题目都偏数学类,基本用不到所谓的…

Buffer Status Reporting(BSR)

欢迎关注同名微信公众号“modem协议笔记”。 以一个实网中的异常场景开始,大概流程是有UL data要发送,UE触发BSR->no UL grant->SR->no UL grant->trigger RACH->RACH fail->RLF->RRC reestablishment:简单描述就是UE触…

Jmeter压测说明

Jmeter使用说明Jmeter下载安装修改编码UTF-8参数说明Get接口测试创建线程组添加HTTP请求添加结果树添加聚合报告启动POST请求添加HTTP信息头管理器设置参数图片上传mysql压测准备数据添加数据库连接jar配置jdbc添加jdbc requestJmeter下载安装 Jmeter官网下载 要求java 1.8以上…

MACD指标在外汇交易中的另类运用方法

外汇交易中怎么另辟蹊径的使用MACD指标 随着外汇市场的不断发展和变化,交易者们不断探索新的方法和技术指标,以提高自己的交易技巧和赢利能力。其中,MACD指标是广大交易者们喜欢使用的一种技术分析工具,它可以帮助交易者判断价格的…

SQL注入Getshell的奇思妙想(上)

前言 前段时间,hvv和找实习的师傅们也多了起来。而我也不例外,尝试投递了不少简历,结果是积累了大量的面试经验。笔者发现大量的hr面试官都喜欢从SQL注入开始询问,所以留心了一下关于SQL注入的问题的频率。结果非常amazing啊&…

传统企业数字化转型,到底难在哪里?

数字化转型过程中面临最大的挑战和问题是什么?这篇整理了企业在数字化转型过程中普遍面临的9大问题和挑战以及如何解决这些问题,希望能够对各位企业数字化转型有多启发和帮助。 01 企业数字化转型三大现状 在梳理企业数字化转型问题之前,我想…

C++数据结构 —— 二叉搜索树

目录 1.二叉搜索树的基本概念 1.1二叉搜索树的基本特征 2.二叉搜索树的实现 2.1数据的插入(迭代实现) 2.2数据的搜索(迭代实现) 2.3中序遍历(递归实现) 2.4数据的删除(迭代实现) 2.5数据的搜索(递归实现) 2.6数据的插入(递归实现) 2.7数据的删除(递归实现) 2.8类的完…

元宇宙开始告别以资本为主导的野蛮生长,新的竞争格局和态势将形成

欲要成为这样一场洗牌的胜利者,元宇宙的玩家需要真正站在商业的角度,而非资本市场的角度来看待元宇宙,来寻找元宇宙的正确的发展模式和方法。原因在于,在这样一场洗牌过程当中,仅仅只是对于以往以资本为主导的发展模式…

Web自动化测试——selenium篇(二)

文章目录一、浏览器相关操作二、键盘操作三、鼠标操作四、弹窗操作五、下拉框选择六、文件上传七、错误截图一、浏览器相关操作 浏览器窗口大小设置 driver.manage().window().maximize();//窗口最大化 driver.manage().window().minimize();//窗口最小化 driver.manage().wi…

【GD32F427开发板试用】01适配RTX4+调试组件Event Recorder

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:汪阳 感谢极术社区和兆易创新组织的开发板试用活动。收到开发板有一周多了,因为工作关系好久没有折腾MDK了,上手浪费的…

教你文本生成图片——stablediffusion

今天来点轻松的话题,带大家玩一个用文字生成图片的模型。相信大家如果关注AIGC领域,对文本生成图片,对Stablefiffusion、DEALL.E应该不陌生。今天给大家介绍的就是基于SD2 finetune出来的一个模型()这篇文章不会教大家…

ArcGIS中基于网格实现可视化

1 数据来源介绍 土地利用数据、高程数据、植被指数数据均来源于中国科学院资源环境科学与数据中心(https://www.resdc.cn/)。 2 数据预处理 我们从中国科学院资源环境科学与数据中心官网上下载下来的土地利用栅格数据是整型的,我们可以利用…

高低温真空磁场探针台T8-EM4的技术指标

锦正茂高低温真空磁场探针台探针台配备4个(可选6个或8个)拥有高精度位移的探针臂,同时配有高精度电子显微镜,便于微小样品的观察操作。探针可通过直流或者低频交流信号,用来测试芯片、晶圆片、封装器件等,广…

火眼审阅 | 基于NLP和OCR识别技术赋能合同审阅

合同作为确定权利义务的法律文件,贯穿企业内外部活动的所有环节,可见合同数据之于企业是非常重要的数据资产。 合同管理是企业营业中的重要部分,其中合同审核是企业法务的基本工作之一。而对于所有的法务人员一直存在一个问题:合…

Java读取mysql导入的文件时中文字段出现�??的乱码如何解决

今天在写程序时遇到了一个乱码问题,困扰了好久,事情是这样的, 在Mapper层编写了查询语句,然后服务处调用,结果控制器返回一堆乱码 然后查看数据源头处: 由重新更改解码的字符集,在数据库中是正…

算法总结c++

文章目录基本概念时间复杂度空间复杂度基本结构1. 数组前缀和差分数组快慢指针(索引)左右指针(索引)盛水容器三数之和最长回文子串2. 链表双指针删除链表的倒数第 n 个结点翻转链表递归将两个升序链表合并为一个新的 升序 链表链表翻转3. 散列表twoSum无…

Camtasia2023最新版本新功能及快捷键教程

使用Camtasia,您可以毫不费力地在计算机的显示器上录制专业的活动视频。除了录制视频外,Camtasia还允许您从外部源将高清视频导入到录制中。Camtasia的独特之处在于它可以创建包含可单击链接的交互式视频,以生成适用于教室或工作场所的动态视…

UDS诊断之DTC码构成

DTC(Diagnostic Trouble Code)表示诊断故障码(全局唯一),是故障类型的"身份ID";用于汽车故障时对故障部位及原因的排查。 格式如下: 其中,DTCHighByte、DTCMiddleByte这两个字节表示故障内码&…