iOS 杂谈iOS备忘录@IT·互联网

欢迎来到Github世界

2017-07-20  本文已影响3429人  YoKey
Github

前两天在团队中分享了该主题,反响不错,整理了下分享给小伙伴。


目录


开始

Github是基于 Git 做版本控制的代码托管平台,同时也是全球最大的代(同)码(性)托(交)管(友)网站。

此外还有Bitbucket、 GitLab以及国内的Coding等等,感兴趣的同学可以阅读 这篇对比介绍


工欲善其事必先利其器 - 插件篇

关于Github的插件非常多,我仅推荐我目前在用的4个插件:

1、Hovercard

悬浮卡片工具: 鼠标悬停在Github上可点击的Links上(用户、仓库、issue、commit等等),会出现悬浮卡片显示相关信息


2、Dashboard Avatars

头像插件: 在GitHub Timeline上显示用户头像,可以更快速通过头像检索信息

3、Octotree

Octotree: 在Github页面添加侧边栏,在显示项目的目录结构, 必备

4、Zenhub

项目管理工具: 主要功能是对issue, PR进行管理,非常实用


Watch、Star、Fork

1、Watch

推荐阅读:如何正确接收 GitHub 的消息邮件

2、Star

理解为 关注、点赞,可在 "Your Stars" 里查看你Star过的项目

3、Fork

对当时原项目的拷贝,一般当你想给原项目提PR 或者想拓展维护一个属于自己项目时,使用Fork。

鉴于Fork的该特性,不建议把Fork当作Star来使用。

更详细的讲解,可看这篇文章:如何用好 github 中的 watch、star、fork


项目菜单

1、Code

可以理解为项目主页,包括代码、README、项目介绍、分支情况、Release情况、贡献者等等

2、Issues

对项目的建议、BUG、疑问,可以通过创建issue来提给项目作者。

提issue前,先查看项目中是否有:CONTRIBUTING.mdISSUE_TEMPLATE.md,若有则先阅读对Issue或者Issue的格式是否有要求,根据要求提Issue。 例: OkHttp的ISSUE_TEMPLATE

PS: 一般CONTRIBUTING.md、ISSUE_TEMPLATE.md、PULL_REQUEST_TEMPLATE.md 会放在项目根目录或.github目录下

3、PR

Pull Request,类似Gitlab中的MR(Merge Request),你不可能直接更改原项目的代码,而是通过fork进行更改,然后通过PR提交给原作者,原作者认为你的PR没问题则会merge你的PR,merge后你更改的代码就会体现到原项目中。 具体可看这篇文章:GitHub 的 Pull Request 是指什么意思?

同样,提PR前,先查看项目中的CONTRIBUTING.mdPULL_REQUEST_TEMPLATE.md

这里有一篇提PR的文章:如何提PR?

4、Projects

用于项目管理,可管理Issue, PR, Notes,推荐用来管理Notes,TODO等等

对于Issue,PR推荐使用Zenhub插件协助管理(上面插件篇 有介绍)

5、WIKI

项目文档,具体介绍、使用可看官方教程

一般来说,如果你的项目 使用说明较复杂,可以考虑放到wiki中维护,保持README的简洁

6、Insight


换个角度看世界 - Badge篇

我们会看到很多开源项目的README中,有很多好看的Badge,不仅看起来美观,同时通过Badge告知使用者项目的各种状态。

下面介绍一些常见的Badge,并从Badge角度触发,介绍相关内容

1、CI(持续集成)

实时展示最近的持续集成结果,对于Github上的开源项目,最流行的是travis-ci,它可以持续构建项目,能够测试和部署,对于开源项目完全免费,集成也非常方便 ,在项目中以.travis.yml描述构建任务

比如当你push、merge、打tag时,就会在几分钟内开始按照你的要求测试部署你的项目,如果构建成功,会实时显示


CI可以做很多事: 自动运行单元测试, 打Tag时自动构建APK并上传到内测分发平台(fir/蒲公英)或者 上传到Maven等等。

这篇文章介绍集成travis-ci: 如何简单入门持续集成( Travis-CI )

Badge可通过构建结果中获取

2、单元测试



展示单元测试覆盖情况,平台有:codecovcoveralls等等,推荐codecov,UI美观、流行,它们是开源的测试结果展示平台,将测试结果可视化。

如果你集成了travis-ci,并且写了单元测试,推荐集成codecov

Badge可通过项目设置列表里获取

3、推广



比如Android开源项目集合网站:Android Arsenal,可以在这里推广你的项目,该网站同时会对不同项目进行了分类,也是一个开源项目搜索网站

Badge可通过项目主页Badge菜单中获取

4、版本-项目管理工具

实时展示当前最新的最新Release版本,方便开发者快速知晓当前项目的最新版本。

一般我们的开源项目为方便的提供给别人使用,会上传到一些项目管理工具上,比如
Maven


Gem


CocoaPods


Bintray-Statistics

Badge通过相关平台的主页获取

5、License


主流开源协议:

区别附一张阮一峰博客的讲解图:

License

Badge可直接拷贝图片链接即可

6、Gitter


开源世界的聊天社区,一些开源项目会选择在Giiter里开放聊天社区,比如RxJava的Gitter

Badge:Gitter的Github帐号会自动fork你的项目并提一个 添加Badge的PR

7、其它

Badge还有很多,这里不再介绍,建议挑选几个对项目最有用的Badge展示。

附:生成Badge的网站Shields


Gist

gist是一个分享平台,但是其实也可以分享代码、 笔记、文章等等,它的不同之处在于具有版本管理功能、支持多种写作格式等等。

对于程序猿,我们最多使用的是代码片段功能。比如我们提一个Issue时,我们想把自己的代码给作者看,此时gist是非常适合的方式:将你的代码片段放到gist,再将地址贴到issue上。

详细的介绍可以看下这篇文章:如何看待 Github Gist这个服务,怎样更好的利用?


如何做好开源项目?

所以做好开源项目本质就是做一个好的产品:解决用户的痛点,容易被使用,解决问题简单高效。

最重要的我想说,不要报着功利心去做开源项目,应当对技术保持纯粹的热情,平常心很重要。


一些建议

当然对一些经常被问及的issue,也许把相关回答维护到wiki上更合适


最后

我想我们都多多少少在使用别人的开源库,也许你现在可以考虑加入到开源的队伍中了,贡献自己的一份力量,从New repository开始吧!

感受分享的快乐,欢迎来到Github的世界 :)

上一篇 下一篇

猜你喜欢

热点阅读