当前位置: 首页 > news >正文

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是一个强大的版本历史控制工具,每一个人都可通过发起拉取请求来为开源项目做贡献,而且除了编写代码之外还有许多方式可以做出贡献。

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

http://www.lryc.cn/news/5584.html

相关文章:

  • Redis面试知识
  • Spring面试重点(四)——Spring事务
  • ♡ — MySQL 存储引擎
  • 大数据技术架构(组件)34——Spark:Spark SQL--Optimize
  • Zookeeper实现分布式锁
  • MFC 添加重新启动管理器支持
  • 一文带你深刻的进入Python,并且了解Python的优缺点
  • 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(4)
  • 编译原理—翻译方案、属性栈代码
  • 链表
  • CSS 样式优先级
  • SpingMVC获取请求参数
  • 微搭使用笔记(二)微搭低代码平台介绍及基础使用
  • CountDownLatch的定义、使用 、原理
  • 《Terraform 101 从入门到实践》 Terraform在公有云Azure上的应用
  • 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(3)
  • Linux 删除修改日期大于某一天的文件
  • 【算法题】1845. 座位预约管理系统
  • 【专业认知】保研北大金融 / 入职腾讯产品经理
  • OpenHarmony使用Socket实现一个UDP客户端详解
  • 使用VUE自定义组件封装部门选择功能
  • C语言基础应用(一)数据类型
  • 算法笔记(三)—— 桶排序及排序总结
  • Linux入门篇(一)
  • HTTPSHandler SSL Error
  • 基于Android的高校食堂餐厅配送系统
  • Java设计模式-02工厂模式
  • AXI-Lite 学习笔记
  • 77页智慧城市顶层设计方案
  • JavaWeb--MavenMybatis基础