从0开始学习 GITHUB 系列之「GITHUB 常见的几种操作」【转】
本文转载自:http://stormzhang.com/github/2016/09/21/learn-github-from-zero8/
版权声明:本文为 stormzhang 原创文章,可以随意转载,但必须在明确位置注明出处!!!
我们都说开源社区最大的魅力是人人多可以参与进去,发挥众人的力量,让一个项目更完善,更强壮。那么肯定有人疑问,我自己目前还没有能力开源一个项目,但是想一起参与到别的开源项目中,该怎么操作呢?那么今天,就来给大家一起介绍下 GitHub 上的一些常见的操作,看完之后你就知道方法了。
我们姑且以 Square 公司开源的 Retrofit 为例来介绍。
打开链接:
https://github.com/square/retrofit
然后看到如下的项目主页:

可以看到一个项目可以进行的操作主要就是两部分,第一部分包括 Watch、Star、Fork ,这三个操作之前的系列介绍过了,这里就不啰嗦了。
我们着重来介绍第二部分,分别包括 Code、Issues、Pull requests、Projects、Wiki、Pulse、Graphs。接下来我们来一个个解释下。
- Code
这个好理解,就是你项目的代码文件而已,这里说明一下,每个项目通常都会有对该项目的介绍,只需要在项目的根目录里添加一个 README.md 文件就可以,使用 markdown 语法,GitHub 自动会对该文件进行渲染。
- Issues
Issues 代表该项目的一些问题或者 bug,并不是说 Issues 越少越好,Issues 被解决的越多说明项目作者或者组织响应很积极,也说明该开源项目的作者很重视该项目。我们来看下 Retrofit 的 Issues 主页,截至目前 close(解决) 了 1305 个 Issue,open (待解决)状态的有 37 个,这解决问题的比例与速度值得每位开源项目的作者学习。

同样的,大家在使用一些开源项目有问题的时候都可以提 Issue,可以通过点击右上角的 New Issue 来新建 Issue,需要添加一个标题与描述就可以了,这个操作很简单。
- Pull requests
我们都知道 GitHub 的最大魅力在于人人都可参与,比如别人开源一个项目,我们每个人都可以一起参与开发,一起来完善,而这都通过 Pull requests 来完成,简称 PR。这个没法在 Retrofit 演示,下面我就以我自己在 GitHub 上的一个项目 9GAG 来给大家详细演示下怎么给一个项目发起 PR:
提前说明下,你必须确保你可以正常向 GitHub 提交代码,如果不可以的话,请看我之前的系列文章。
第一步登录你的 GitHub 账号,然后找到你想发起 PR 的项目,这里以 9GAG 为例,点击右上角的 Fork 按钮,然后该项目就出现在了你自己账号的 Repository 里。
请注意,这个项目原本是属于 GitHub 账号 stormzhang 下的,为了演示,我自己又重新注册了另一个账号叫 googdev 单纯为了演示而用。
Fork 之后,在账号 googdev 下多了一个 9GAG 的项目,截图显示如下:

可以看到 Fork 过来的项目标题底部会显示一行小字:fork from stormzhang/9GAG ,除此之外,项目代码跟原项目一模一样,对于原项目来说,相当于别人新建了一个分支而已。
第二步,把该项目 clone 到本地,然后修改的 bug 也好,想要新增的功能也好,总之把自己做的代码改动开发完,保存好。为了方便演示,我这里只在原项目的 README.md 文件添加了一行文字:Fork from stormzhang !
接着,把自己做的代码改动 push 到 你自己的 GitHub 上去。
相信看过我前面教程的同学这一步应该都会,不会的可以滚回去看前面的教程了。
第三步,点击你 Fork 过来的项目主页的 Pull requests 页面,

点击 New pull request 按钮紧接着到如下页面:

这个页面自动会比较该项目与原有项目的不同之处,最顶部声明了是 stormzhang/9GAG 项目的 master 分支与你 fork 过来的 googdev/9GAG 项目 master 分支所做的比较。
然后最顶部可以方便直观的看到到底代码中做了哪些改动,你们也看到我就是加了一句 Fork from stormzhang !
同样的我写好标题和描述,然后我们点击中间的 Create pull request 按钮,至此我们就成功给该项目提交了一个 PR。
然后就等着项目原作者 review 你的代码,并且决定会不会接受你的 PR,如果接受,那么恭喜你,你已经是该项目的贡献者之一了。
- Projects
这个是最新 GitHub 改版新增的一个项目,这个项目就是方便你把一些 Issues、Pull requests 进行分类,反正我觉得该功能很鸡肋,起码到目前为止基本没人用该功能,你们了解下就好。
- Wiki
一般来说,我们项目的主页有 README.me 基本就够了,但是有些时候我们项目的一些用法很复杂,需要有详细的使用说明文档给开源项目的使用者,这个时候就用到了 Wiki。

使用起来也很简单,直接 New Page ,然后使用 markdown 语法即可进行编写。
- Pulse
Pulse 可以理解成该项目的活跃汇总。包括近期该仓库创建了多少个 Pull Request 或 Issue,有多少人参与了这个仓库的开发等,都可以在这里一目了然。
根据这个页面,用户可以判断该项目受关注程度以及项目作者是否还在积极参与解决这些问题等。

- Graphs
Graphs 是以图表的形式来展示该项目的一个整体情况。比如项目的全部贡献人,比如 commits 的围度分析,比如某天代码提交的频繁程度等。

- Settings
如果一个项目是自己的,那么你会发现会多一个菜单 Settings,这里包括了你对整个项目的设置信息,比如对项目重命名,比如删除该项目,比如关闭项目的 Wiki 和 Issues 功能等,不过大部分情况下我们都不需要对这些设置做更改。感兴趣的,可以自行看下这里的设置有哪些功能。

以上就包含了一个 GitHub 项目的所有操作,相信大家看完之后对 GitHub 上一些常用的操作都熟悉了,从现在开始,请一起参与到开源社区中来吧,开源社区需要我们每个人都贡献一份力,这样开源社区才能越来越强大,也才能对更多的人有帮助!
从0开始学习 GITHUB 系列之「GITHUB 常见的几种操作」【转】的更多相关文章
- 从0開始学习 GitHub 系列之「07.GitHub 常见的几种操作」
之前写了一个 GitHub 系列,反响非常不错,突然发现居然还落下点东西没写,前段时间 GitHub 也改版了,借此机会补充下. 我们都说开源社区最大的魅力是人人多能够參与进去,发挥众人的力量,让一个 ...
- 从0开始学习 GitHub 系列之「07.GitHub 常见的几种操作」
之前写了一个 GitHub 系列,反响很不错,突然发现竟然还落下点东西没写,前段时间 GitHub 也改版了,借此机会补充下. 我们都说开源社区最大的魅力是人人多可以参与进去,发挥众人的力量,让一个项 ...
- 从0开始学习 GITHUB 系列之「向GITHUB 提交代码」【转】
本文转载自:http://stormzhang.com/github/2016/06/04/learn-github-from-zero4/ 版权声明:本文为 stormzhang 原创文章,可以随意 ...
- 从0开始学习 GITHUB 系列之「GIT 速成」【转】
本文转载自:http://stormzhang.com/github/2016/05/30/learn-github-from-zero3/ 版权声明:本文为 stormzhang 原创文章,可以随意 ...
- 从0开始学习 GITHUB 系列之「加入 GITHUB」【转】
本文转载自:http://stormzhang.com/github/2016/05/26/learn-github-from-zero2/ 版权声明:本文为 stormzhang 原创文章,可以随意 ...
- 从0开始学习 GitHub 系列之「04.向GitHub 提交代码」
之前的这篇文章「从0开始学习 GitHub 系列之「Git速成」」相信大家都已经对 Git 的基本操作熟悉了,但是这篇文章只介绍了对本地 Git 仓库的基本操作,今天我就来介绍下如何跟远程仓库一起协作 ...
- 从0开始学习 GitHub 系列之「03.Git 速成」
前面的 GitHub 系列文章介绍过,GitHub 是基于 Git 的,所以也就意味着 Git 是基础,如果你不会 Git ,那么接下来你完全继续不下去,所以今天的教程就来说说 Git ,当然关于 G ...
- 从0开始学习 GitHub 系列之「02.加入 GitHub」
转载地址: http://blog.csdn.net/googdev/article/details/52787586 看完昨天的文章「从0开始学习 GitHub 系列之「初识 GitHub」」估计不 ...
- 从0开始学习 GITHUB 系列之「初识 GITHUB」【转】
本文转载自:http://stormzhang.com/github/2016/05/25/learn-github-from-zero1/ 版权声明:本文为 stormzhang 原创文章,可以随意 ...
随机推荐
- MQTT的学习研究(十四) MQTT moquette 的 Callback API 消息发布订阅的实现
在moquette-mqtt中提供了回调callback模式的发布和订阅但是在订阅之后没有发现有消息接收的方法,参看moquette-mqtt中Block,Future式的发布订阅基础是callbac ...
- js调试模式怎么看变量是在哪里定义的?
1. 2.
- MySQL Server has gone away报错原因汇总分析(转自:http://cenalulu.github.io/mysql/mysql-has-gone-away/)
原因1. MySQL 服务宕了 判断是否属于这个原因的方法很简单,执行以下命令,查看mysql的运行时长 $ mysql -uroot -p -e "show global status l ...
- etc/fstab
etc/fstab 就是在开机引导的时候自动挂载到linux的文件系统 设备名称 挂载点 分区的类型 挂载选项 dump选项 fsck选项UUID=ce25cdc7-434f-420b-b3 / ex ...
- LISTAGG
LISTAGG(measure_expr [, 'delimiter']) WITHIN GROUP (order_by_clause) [OVER query_partition_clause] S ...
- Jenkins的参数化构建
一.参数化构建日志 1.查看效果 有时候开发需要查看服务器日志,传统的是需要运维登录服务器拉取开发所需要的服务日志,这么做的弊端是:1.如果日志比较大,拉取耗费时间.占用服务器资源.2.占用运维不必要 ...
- ASIOTutorial
ASIOTutorialTutorial 1: Simple wgetTutorial 2: Synchronous HTTP ServerTutorial 3: Asynchrnous wgetTu ...
- MVC4中使用Html.DropDownList实现级联
本文记录了一个在MVC4中使用PartialView实现级联效果的小例子. 准备工作 首先准备一下要级联的数据,新建两个类:Province和City public class Province { ...
- 一只青蛙从第一级台阶跳到第n级,每次可以跳任意级,共有多少种跳法,并写出递推式
是斐波那契数列问题 假设f(n)是n个台阶跳的次数:(假设已经调到第n个台阶,最后一次是由哪个台阶跳上来的) f(n) = f(n-1)+f(n-2)+...+f(n-(n-1)) + f(n-n) ...
- Oracle数据库的经典问题 snapshot too old是什么原因引起的
Oracle数据库的经典问题 snapshot too old是什么原因引起的 ORACLE经典错误求解:ORA-1555错误(Snapshot too old ) - ... 书上说是因为the r ...