被称为“开发者神器”的GitHub,到底该怎么用?

被称为“开发者神器”的GitHub,到底该怎么用?

原文:https://baijiahao.baidu.com/s?id=1594232691312740966&wfr=spider&for=pc

开发人员天天都要在工做中使用GitHub或其余基于Git的工具。 GitHub是面向开源及私有软件项目的托管平台。 那么什么是GitHub?其中都有哪些关键的概念?如何使用GitHub才能提升工做效率?git

本文编译自medium上原标题为A developer’s introduction to GitHub的文章。web

GitHub是一个拥有数十亿行代码的网站,天天有数百万开发者汇集在一块儿,研究开源软件中存在的问题。编程

简而言之,它是为软件开发人员构建的平台,是围绕Git构建的。服务器

为何选择GitHub?网络

如今你知道了GitHub是什么,你可能会问为何须要使用GitHub。并发

毕竟,GitHub由一家私人公司管理而且该公司经过托管代码获利。 那么为何应该使用GitHub而不是像BitBucket或GitLab这样的平台呢?ide

除我的喜爱和技术缘由外,还有一个重要缘由:每一个人都在使用GitHub,所以其网络效应不可小觑。工具

主要的代码库已经随着时间的推移从其余版本控制系统迁移到Git,由于它更加便捷,而且GitHub投入了大量的努力来知足开源社区的需求。测试

因此今天,你在查找一些软件库时,99%的状况下会在GitHub上找到它。网站

除了开源代码以外,许多开发人员还在GitHub上托管私有存储库,由于平台很方便。

如今让咱们了解一下开发人员须要知道的有关Git的概念。

GitHub Issues

Github Issues是世界上最受欢迎的bug跟踪系统之一。

项目的全部者能够利用它组织,标记和将issue与里程碑关联。

若是您在其余人管理的项目上打开某个issue,它将保持打开状态,直到您将其关闭(例如,若是您找到了问题所在)或者项目管理者关闭这个issue。

有时候你会获得一个明确的答案,而其余时候,这个issue将会被打开并标记出一些分类信息。 而后开发人员能够回到这个issue来解决问题或根据反馈改进代码库。

大多数开发人员不会免费管理在GitHub上发布的代码,所以您不能指望即时回复。 可是一些开放源代码库由那些围绕该代码提供服务的公司发布,它们会提供具备更多功能的版本或者使用基于插件的系统。 这些公司已经为开源项目付给开发人员工资。

社会编码

 

 

几年前,GitHub标志出现了“社交编码”。

这是什么意思,和GitHub有什么关系呢?

Follow

使用GitHub,您能够经过访问用户的我的资料并单击“关注”,或者经过单击软件库上的“观看”按钮来关注开发人员或软件库。

在这两种状况下,活动都会显示在您的dashboard中。关注用户或软件库跟Twitter上的关注不同,你看不见人们说什么,而能够看到人们在作什么。

Star

GitHub的一大特点就是可以为软件库加星标。用户能够经过这个操做将其余软件库加入到“已加星标的软件库”列表中,这样用户能够关注本身感兴趣的项目并发现相似的项目。

这也是最重要的评级机制之一,由于软件库的星星越多,它一般就越受欢迎和重要。它在搜索结果中也会位于更突出的位置。

重大项目可能有数万颗星。

GitHub也有一个trending页面,它会推荐在特定时间段内(例现在天或本周或本月)得到最多星星的软件库。

Fork

项目最后一个重要的网络指标是fork的数量。

这是GitHub如何工做的关键,由于fork是Pull Request(PR)的基础,这是一个更改提议。一我的可能会fork您的软件库,进行一些更改,而后建立一个PR来要求您合并这些更改。

有时fork软件库的人可能永远不会要求你合并任何东西。他们可能会由于喜欢你的代码而fork你的软件库,并在上面添加一些他们不想合并到原始软件库的东西。用户还能够修复他们遇到的bug。

受欢迎=更好

总而言之,这些都是项目受欢迎程度的关键指标。 除了上述指标以外,最近一次提交的日期和做者参与issue跟踪系统的信息也是衡量软件库或软件可信度的标准之一。

PR(Pull Request)

在前一节中,我介绍了Pull Request(PR)是什么。 重申一下,一我的可能会fork你的软件库,作一些改变,而后建立一个PR来要求你合并这些改变。

一个项目可能有数百个PR,一般状况下,项目越受欢迎,它的PR越多,如React项目:

一旦一我的提交了PR请求,项目的核心维护者就会对其进行审查。

根据请求范围(更改次数,受更改影响的事件数量或涉及到的代码的复杂程度),维护人员可能须要不等的时间来确保更改与项目兼容。

一个项目可能有有关改进的明确时间表。维护人员但愿用户用尽量简单的方式介绍PR中的体系结构。

这就是说,PR并不老是被立马接受,而且可能不会被接受。

在我上面的例子中,软件库中有一个一年半前的PR。这在全部项目中都会发,很正常,多是因为我上面提到的缘由。

项目管理

除了issues(开发人员得到用户反馈的地方)外,GitHub界面还提供了少许项目管理功能。

其中之一是Projects。它在生态系统中是很是新的,也不多被使用,但它是帮助用户组织须要完成的问题和工做的看板。

Wiki能够被用做文档。另外一个受欢迎的项目管理功能是里程碑。它是issue页面的一部分,您能够将问题分配给特定的里程碑,多是发布目标。

说到发布,GitHub经过引入发布加强了Git的标签功能。

Git标签是特定commit的指针,若是完成时间一致,它能够帮助您回到以前版本的代码,而且无需引用特定的commit。

GitHub发布版创建在Git标签的基础上,表明代码的完整版本,也可能表明代码最终产品完整工做版本的Zip文件,发行说明和二进制资产。

尽管能够经过编程建立Git标签(例如,使用命令行git程序),但建立GitHub版本是手动过程,在GitHub UI上进行。用户能够利用GitHub建立一个新版本,并选择你想应用的标签。

比较commits

GitHub提供了不少处理代码的工具。

您可能最但愿作的事情之一是将一个分支与另外一个分支进行比较。 或者您可能但愿将最新的commit与您当前使用的版本进行比较,以便随时查看更改。

用户能够利用GitHub比较视图执行此操做:只需在软件库名称末尾添加/compare便可。

例如,

在下图中,我将最新的React v15.x与最新v16.0.0-rc版本进行了比较,方便你们了解更改的内容。

该视图向您展现了两个版本(或标签或commits)之间的不一样以及实际差别。

Webhooks和服务

GitHub提供了许多有助于开发人员工做流程的功能,例如webhook和服务。

Webhooks

当软件库中出现特定问题时,Webhook能够触发外部服务,例如,推送代码时,建立分支或删除标签。

当问题发生时,GitHub会给URL发送POST请求。

当咱们从本地计算机推送更新时,此功能能ping远程服务器以从GitHub获取最新代码。

服务

GitHub服务和新的GitHub应用程序是第三方集成程序,可改善开发者的体验或为用户提供服务。

例如,您能够设置一个测试运行器,这样每次TravisCI推送新commits时,它能够自动运行测试。

您能够设置Continuous Integration来使用CircleCI。您也能够建立一个Codeclimate集成程序来分析代码并建立“Technical Debt”报告和测试覆盖率。

小结

GitHub是一个了不得的工具和服务平台,是当今开发人员能够利用的真正神器。本教程只是入门级,但在GitHub上工做是不容错过的。

原文做者:Flavio Copes

原文连接:

编译组出品。编辑:郝鹏程

相关文章
相关标签/搜索