博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Github 的 Pull Request 教程
阅读量:6840 次
发布时间:2019-06-26

本文共 1481 字,大约阅读时间需要 4 分钟。

Github 的 Pull Request 教程

什么是Pull Request

在知乎有一个高赞回答用一个类比的方式解释了什么是PR,这里我就先一下,不再重新解释了。

想想我们中学考试,老师改卷的场景吧。你做的试卷就像仓库,你的试卷肯定会有很多错误,就相当于程序里的 bug。老师把你的试卷拿过来,相当于先 fork。在你的卷子上做一些修改批注,相当于 git commit。最后把改好的试卷给你,相当于发 pull request,你拿到试卷重新改正错误,相当于 merge。

PR五步走

正如这个类比中提到的那样,在GitHub如果想要提交一个PR,大致分为一些几步:

  1. 先fork别人的项目到自己的仓库中去
  2. clone到本地进行修改,由于是自己的仓库,所以想怎么改都行
  3. 再修改完bug后,push回自己的仓库
  4. 如果你觉得自己的修改很完备,那么你就可以Pull Request,相当于请作者看一下自己的修改。
  5. 最后如果作者也认同这个修改,那么他会Merge到master上,而你也就成了这个项目的contributor。

光说不练假把式,相信点开这个教程的大部分人肯定现在正面对着如何提交PR,那么就和我一起来练练手吧!这里我使用GitHub上很火的一个来做个演示。

第一步:fork项目到自己的仓库中

在项目名称右边有fork键,登陆后点击即可fork仓库。
fork过程中可以看到这么一个图片,完成后将会跳转到你自己的项目分支。 第二步:打开Git Bash或者命令行,将项目下载到本地

$ git clone https://github.com/taotianli/Virgilio.gitCloning into 'Virgilio'...remote: Enumerating objects: 61, done.remote: Counting objects: 100% (61/61), done.remote: Compressing objects: 100% (52/52), done.remote: Total 1784 (delta 27), reused 34 (delta 9), pack-reused 1723Receiving objects: 100% (1784/1784), 7.15 MiB | 123.00 KiB/s, done.Resolving deltas: 100% (824/824), done.复制代码

你需要将git clone后的网址换成你自己的仓库,在看到done之后就代表这个仓库已经下载到了本地。 第三步:进入本地文件,并进行相应修改,这里以修改README.md作为演示。

$ cd Virgilio/git add README.mdgit commit -m 'Modefied the README.'复制代码

第四步:上传到自己的GitHub仓库,并申请Pull Request 上传代码使用git push origin master命令就可以了,在之后就可以申请PR了。

回到主项目分支上,同时点击Pull Request -> New Pull Request,最后如果原作者觉得这个修改可以被加到项目中去,那么他就会同意合并,最后图下图所示。 注意:在作者合并之前,你可以做多次修改,在申请PR后只要push回自己的仓库,GitHub会自动记录修改并同步。

最后让我们在重复一下步骤,fork->clone->add&push->PR->merged,你学会了吗?

转载地址:http://qekul.baihongyu.com/

你可能感兴趣的文章
学习 SQL 语句 - Select(2): 指定表中的字段
查看>>
iptraf
查看>>
Tomcat JDBC pool源码部析
查看>>
a 伪类在IE6下优先级大于class
查看>>
iOS 导出 ipa 包时 四个选项的意义
查看>>
我的友情链接
查看>>
android 简单解决询问权限问题和apk打包过大问题
查看>>
Android Accessibility学习笔记
查看>>
QEMU用户模式学习笔记
查看>>
两种方法解决mysql主从不同步
查看>>
Lvs+Keepalived+MySQL Cluster架设高可用负载均衡Mysql集群
查看>>
Spring高级应用之注入嵌套Bean
查看>>
mini6410 uboot1.1.6 MMC fat command support
查看>>
系统日志的实践应用
查看>>
基于SmartGwt的分页组件
查看>>
【oraInventory】由OUI-10035和OUI-10033错误引发的关于oraInventory目录位置的思考
查看>>
epoll和select的区别
查看>>
地产浅吟
查看>>
Eclipse实现文件在资源管理器打开并选中
查看>>
我的友情链接
查看>>