Github 上如何提交 pull request
什么是复刻(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是一个强大的版本历史控制工具,每一个人都可通过发起拉取请求来为开源项目做贡献,而且除了编写代码之外还有许多方式可以做出贡献。
最后要说的是,如果你的拉取请求没有被接受也不要感到困惑,维护者们花费了大量的时间精力来优化项目,他们比我们更加了解整个项目,所以他们知道如何做出合理选择。
相关文章:
Github 上如何提交 pull request
什么是复刻(forking)? 我们可以通过复刻操作将喜爱的仓库保存自己的Github账户中,以便独立地对其进行操作。 通过复刻,我们可以得到包含完整版本历史的目标仓库的实例,之后可以对复刻得到的仓库进行任意操作而不会影响…...
Redis面试知识
概述 Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。 键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。 Redis 支持很多特性,例如将内存中的数据持久化到硬盘中,使用复制来扩展读性能…...
Spring面试重点(四)——Spring事务
Spring事务 事务的方式 spring中使用事务有两种方式,一种是编程式事务,一种是声明式事务。编程式事务推荐使用TransactionTemplate,实现TransactionCallback接口,需要编码实现;声明式事务只需要在函数增加注解Transa…...
♡ — MySQL 存储引擎
MySQL 存储引擎架构 MySQL 存储引擎采用的是插件式架构,支持多种存储引擎,我们甚至可以为不同的数据库设置不同的存储引擎以适应不同场景的需要;存储引擎是基于表的,而不是数据库。 MyISAM 和 InnoDB 的区别 MySQL 5.5 之前&am…...
大数据技术架构(组件)34——Spark:Spark SQL--Optimize
2.2.3、Optimize2.2.3.1、SQL3.3.1.1、RB1、Join选择在Hadoop中,MR使用DistributedCache来实现mapJoin。即将小文件存放到DistributedCache中,然后分发到各个Task上,并加载到内存中,类似于Map结构,然后借助于Mapper的迭…...
Zookeeper实现分布式锁
文章目录ZK节点类型watch监听机制Zookeeper实现分布式锁锁原理创建锁的过程释放锁的过程ZK锁的种类代码实现Zookeeper是一个开源的分布式协调服务,是一个典型的分布式数据一致性解决方案。 分布式应用程序可以基于Zookeeper实现诸如数据发布/订阅,负载均…...
MFC 添加重新启动管理器支持
重启管理器是添加到 Visual Studio for Windows Vista 或更高版本操作系统的功能 如果发生意外关闭或重启,重新启动管理器将为你的应用程序添加支持。 重新启动管理器的行为取决于应用程序的类型。 如果你的应用程序是文档编辑器,则重新启动管理器让应用…...
一文带你深刻的进入Python,并且了解Python的优缺点
最近几年Python被吹的神乎其神,很多同学都不清楚Python到底能干什么?就盲目去学习Python,今天我就Python的应用领域来简单盘点一下,让想学习Python 的同学找对方向不迷茫。 2. Python 的特点 这里就谈谈自己的看法,首先 Python是…...
别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(4)
别具一格,独此一家,原创唯美浪漫情人节表白专辑 不一样的惊喜哦~!(html5,css3,svg)表白爱心代码(复制就可用)(4) 目录 款式四:时光的记忆款 1、拷贝完整源代码 2、更新时光盒所…...
编译原理—翻译方案、属性栈代码
系列文章戳这里👇 什么是上下文无关文法、最左推导和最右推导如何判断二义文法及消除文法二义性何时需要消除左递归什么是句柄、什么是自上而下、自下而上分析什么是LL(1)、LR(0)、LR(1)文法、LR分析表LR(0)、SLR(1)、LR(1)、LALR(1)文法之间的关系编译原理第三章习…...
链表
一、从尾到头打印链表题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。解题思路:使用栈作为中转,可以实现倒置打印classSolution { public:vector<int> printListFromTailToHead(ListNode* head){//使用栈完成中…...
CSS 样式优先级
CSS 样式优先级决定了最终呈现在浏览器中的样式是哪一组样式,在多组样式中有冲突时,最终呈现在浏览器中的样式是具有最高优先级的样式。 CSS 样式优先级顺序如下: 内联样式 > 内部样式 > 外部样式 !important > 内联样式 > ID…...
SpingMVC获取请求参数
通过ServletAPI获取请求参数将HttpServletRequest作为控制器方法的形参,此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象。html<form th:action"{/param/servletAPI}" method"post">用户名:<input ty…...
微搭使用笔记(二)微搭低代码平台介绍及基础使用
概述 官网地址: 官网 官方文档: 官方文档 FAQ: FAQ 腾讯云微搭低代码是一个高性能的低代码开发平台,用户可通过拖拽式开发,可视化配置构建 PC Web、H5 和小程序应用。支持打通企业内部数据,轻松实现企业微信管理、工…...
CountDownLatch的定义、使用 、原理
一、定义 CountDownLatch的作用很简单,就是一个或者一组线程在开始执行操作之前,必须要等到其他线程执行完才可以。我们举一个例子来说明,在考试的时候,老师必须要等到所有人交了试卷才可以走。此时老师就相当于等待线程ÿ…...
《Terraform 101 从入门到实践》 Terraform在公有云Azure上的应用
《Terraform 101 从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看。 简介 Azure是微软的公有云,它提供了一些免费的资源,具体可以查看: https:/…...
别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(3)
别具一格,原创唯美浪漫情人节表白专辑, (复制就可用)(html5,css3,svg)表白爱心代码(3) 目录 款式三:心形实时显示认识多长时间桃花飞舞(猫咪)款 1、拷贝完整源代码 2、拷贝完整js代码 3、修改时间 4、…...
Linux 删除修改日期大于某一天的文件
在服务器运维过程中,我们往往会产生大量的日志文件. 如果日志文件命名能看出日志产生的时间,这些文件是很好删除的. 但有时,我们可能有成千上万的没有命名规律日志文件 下面的方法可以根据日志最后修改时间 批量删除这些文件 先给出完整命令: find /mydir -mtime 10 -name &…...
【算法题】1845. 座位预约管理系统
插: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 坚持不懈,越努力越幸运,大家一起学习鸭~~~ 题目: 请你设计一个管理 n 个座位预约的系…...
【专业认知】保研北大金融 / 入职腾讯产品经理
2023.02.11 一. 朱博文学长分享——关于大学生活的一点思考 1. 自我介绍 大数据18级 经济学双学位 保研至北大金融硕士 “多思考、多感受、兼听则明” 2. 大学生活 2.1 为什么要上大学 1:追求美好生活的需要 “美好”难以量化,因为每个人对生活…...
OpenHarmony使用Socket实现一个UDP客户端详解
一、前言 我们在这里介绍Socket的使用,是为了后面的一篇文章实现设备配网做铺垫。 二、示例详解 点击获取BearPi-HM_Nano源码 ,以D3_iot_udp_client为例: 示例本身很简单,只需要修改 udp_client_demo.c 的2处代码,就能测试了: //连接WIFI,参数1是:WIFI名称,参数2是:…...
使用VUE自定义组件封装部门选择功能
背景 照惯例,先交待下背景,从真实需求出发,讲述实现效果、设计思路和实现方式。 软件系统中,会有一些常见常用的选择功能,如部门选择、人员选择等,用于填报表单,使用频率很高。直接使用一方面会…...
C语言基础应用(一)数据类型
一、数据类型 1、数据类型的分类 2、常量 常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。 2.1 常量举例 // 整型常量 举例 /*718 十进制0213 八进制0x4b 十六进制30u 无符号整数30l 长整型30ul 无符号长整型*/ // 浮点常量…...
算法笔记(三)—— 桶排序及排序总结
堆 逻辑上是一棵完全二叉树(依次遍满或者全满)。 数组可以转为完全二叉树,完全二叉树某结点左孩子(2*i1),右孩子(i*22),父结点((i-1/)2),根节点的父还是自己。 如何将数组转化为堆(大根堆&…...
Linux入门篇(一)
Linux前言Linux初探Linux内核GNU实用工具shellLinux发行版bash shell 基础Linux文件系统Linux文件操作命令前言 在阅读诸如docker之类的书的时候,经常碰到Linux的知识。同时,大部分的盲区也是在Linux方面。因此就想稍微了解一下这个广为人使用的操作系统…...
HTTPSHandler SSL Error
我在服务器ubuntu中,尝试使用pip3,但是出现下面的报错 ImportError: cannot import name HTTPSHandler 通过查询资料,发现报错的原因是,该pip3.5中没有安装好openssl. 我尝试在python3.5中使用import ssl, 确实是会显示下面的报错…...
基于Android的高校食堂餐厅配送系统
需求信息: 商家客户端: 1:登录注册:用户可以通过自己的信息进行账号的注册 2:发布菜单:发布自己经营的美食信息 3:用户订单:查看用户的购买订单 4:订单配送:对…...
Java设计模式-02工厂模式
为什么需要工厂模式,其作用什么?如何实现,代码演示解析优缺点。Q1:为什么需要工厂模式?工厂模式的作用(优点)是什么? 解耦。把对象的创建和使用的过程分开。就是Class A 想调用 Class B ,那么A只是调用B的…...
AXI-Lite 学习笔记
AXI-Lite 学习笔记 参考 FPGA:AXI_Lite总线基础2-1]、第二节 AXI总线介绍、ZYNQ PL与PS交互专题_哔哩哔哩_bilibili AXI-Lite总线系列1 - 基础知识_哔哩哔哩_bilibili AXI4 介绍 AXI4 是ARM公司提出的一种片内总线,描述了主从设备之间的数据传输方式。主…...
77页智慧城市顶层设计方案
【版权声明】本资料来源网络,知识分享,仅供个人学习,请勿商用。【侵删致歉】如有侵权请联系小编,将在收到信息后第一时间删除!完整资料领取见文末,部分资料内容:篇幅有限,无法完全展…...
如何做网站的百科/富阳seo关键词优化
1)定义 json的定义(javascript object notation) 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的…...
网站开发技术总结/信息流优化师职业规划
C语言pow()函数:求x的y次方(次幂)头文件:#includepow() 函数用来求 x 的 y 次幂(次方),其原型为:double pow(double x, double y);pow()用来计算以x 为底的 y 次方值,然后将结果返回。设返回值为 ret,则 re…...
wordpress 手动采集/网络市场调研
默认类和实例的内置属性一致 class A:"""测试类"""name "maotai"def __init__(self):self.age 22## 打印类的属性 for i in dir(A):print(i)## 打印实例的属性 for i in dir(A):print(i)print(A.__doc__) # 测试类 __class__ __dela…...
网站空间一般有多大/seo在线优化网站
好久没有写文章了,和之前年初的时候说要在这里记录所以一些知识文档有一点了违被了,都过这么久了也该把我09年03月到09月所发生,所了解的知识做一记录.3月17日 拆装2612硒鼓型号先发个图上来吧.结构:分为两边. 一边: 鼓芯,橡胶棒,废粉仓.另一边: 粉盒,充电辊. 拆装加粉…...
佛山市网站建设公司/博客网站登录
本文价值与收获 看完本文后,您将能够作出下面的界面 Jietu20200507-094517@2x.jpg Jietu20200507-094537.gif 看完本文您将掌握的技能 掌握popover基础使用代码 import SwiftUIstruct ContentView: View {var body: some View {PopoverExample()} }struct ContentView_Previe…...
新建网页的方法有哪些/seo引擎搜索网址
CMakeLists.txt cmake_minimum_required(VERSION 3.13) project(image) #用变量替换值 set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_FLAGS "-stdc11") #搜索外部库 find_package(OpenCV REQUIRED) #指定头文件的搜索路径,编译器查找相应头文件 include_directories($…...