GitHub开发人员简介

GitHub是一个网站,每天都有数百万的开发人员聚集在一起,以在开源软件上进行协作。它也是托管数十亿行代码的地方,也是软件用户报告他们可能遇到的问题的地方。学习开发人员应该了解的所有GitHub最重要的部分

GitHub简介

GitHub是一个网站,每天都有数百万的开发人员聚集在一起,以在开源软件上进行协作。它也是托管数十亿行代码的地方,也是软件用户报告他们可能遇到的问题的地方。

简而言之,它是面向软件开发人员的平台,它是围绕Git构建的。

提示:如果您还不了解Git,请查看Git指南

作为开发者您无法避免每天使用GitHub,以托管您的代码或使用他人的代码。这篇文章向您介绍了GitHub的一些关键概念,以及如何使用其某些功能来改善工作流程,以及如何将其他应用程序集成到您的流程中。

为什么选择GitHub?

现在您知道了GitHub,您可能会问为什么您应该使用它。

毕竟,GitHub是由一家私人公司管理的,该公司从托管人的代码中获利。那么,为什么不使用类似的平台(例如BitBucket或GitLab)呢?

除了个人喜好和技术原因外,还有一个重要原因:每个人都使用GitHub,因此网络影响巨大。

随着时间的推移,主要的代码库从其他版本控制系统迁移到了Git,因为它的便利性,并且GitHub在历史上已经很好地定位于Open Source社区(并付出了很多努力来“赢得”)。

因此,今天无论何时您查找某个库,您都会有99%的时间在GitHub上找到它。

除了开放源代码之外,由于独特平台的便利性,许多开发人员还在GitHub上托管私有存储库。

GitHub问题

GitHub问题是世界上最受欢迎的错误跟踪器之一。

它为存储库的所有者提供了组织,标记和分配里程碑事件的能力。

如果您在其他人管理的项目中打开问题,则该问题将一直保持打开状态,直到您关闭它(例如,如果您发现存在的问题)或回购所有者将其关闭。

有时,您会得到一个明确的答案,有时,问题将被悬而未决,并带有对问题进行分类的一些信息,开发人员可以根据问题的反馈来解决该问题或改进代码库。

大多数开发人员无需支付支持他们在GitHub上发布的代码的费用,因此您不会期望得到迅速的答复,但是其他时候,开放源代码存储库是由提供围绕该代码提供服务或针对具有更多功能的版本提供商业产品的公司发布的,或基于插件的体系结构,在这种情况下,他们可能会以付费开发人员的身份在开源软件上工作。

社会编码

几年前,GitHub徽标包含“社交编码”标语。

这是什么意思,仍然有意义吗?必然是。

跟随

使用GitHub您可以关注开发人员,只需进入他们的个人资料并点击“关注”即可。

您还可以关注存储库,通过点击“手表仓库上的“”按钮。

在这两种情况下,活动都会显示在您的仪表板中。您不会像在Twitter上那样追随别人,而在Twitter上却能看到人们所说的话,但是你看到人们在做什么

星星

GitHub的一大壮举是能够为资料库加注星标。此操作会将其包含在“已加星标的存储库”列表中,使您可以找到以前发现的有趣内容,并且它也是最重要的评级机制之一,因为回购协议中的星标越多,它就越重要,并且它将更多地显示在搜索结果中。

大型项目可以拥有70.000个或更多的星星。

GitHub也有一个趋势页面它的特点是在确定的时间段内(例如今天,本周或本月)获得最多星星的存储库。

进入这些趋势列表可能会导致其他网络效应,例如在其他站点上被展示,只是因为您具有更高的可见性。

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

这是GitHub工作方式的关键,因为派生是变更请求(Pull Request)的基础。从您的存储库开始,有人分叉它,进行一些更改,然后创建PR来要求您合并这些更改。

有时,分叉的人从不要求您合并任何东西,仅仅是因为他们喜欢您的代码并决定在其顶部添加一些内容,或者他们修复了所遇到的错误。

叉子会克隆GitHub项目的文件,但不会克隆原始项目的任何星号或问题。

总而言之,这些都是项目受欢迎程度的关键指标,通常与最近一次提交的日期以及作者在问题跟踪器中的参与一起,对于您是否应依赖项目而言,是一个有用的指示。库或软件。

拉取要求

在介绍什么是拉取请求(PR)之前

从您的存储库开始,有人分叉它,进行一些更改,然后创建PR来要求您合并这些更改。

一个项目可能有数百个PR,通常来说,项目越受欢迎,PR越多,例如React项目:

React Pull Requests

一旦一个人使用GitHub界面提交了PR,这是一个简单的过程,则需要项目的核心维护者对其进行审查。

取决于范围对于您的PR(更改的数量,或受更改影响的事物的数量,或所触摸的代码的复杂性),维护者可能需要更多或更少的时间来确保您的更改与项目兼容。

一个项目可能有一个明确的时间表,他们想要引入更改。当您在PR中引入复杂的体系结构时,维护人员可能希望使事情简单。

就是说不一定总是很快就接受公关,并且无法保证PR甚至会被接受

在我上面发布的示例中,回购中有一个PR可以追溯到1.5年。而这发生在全部项目。

项目管理

除了问题(开发人员从用户那里获得反馈的地方)之外,GitHub界面还提供了旨在帮助项目管理的其他功能。

其中之一是专案。它在生态系统中非常新,很少使用,但这是一个看板帮助组织问题和需要完成的工作。

href="百科旨在用作用户文档。我到目前为止所看到的Wiki最令人印象深刻的用法之一是转到编程语言GitHub Wiki

另一个流行的项目管理帮助是里程碑。在问题页面的一部分中,您可以将问题分配给特定的里程碑,这些里程碑可以作为发布目标。

说到发布,GitHub增强了Git标签通过引入功能发布

Git标记是指向特定提交的指针,如果一致执行,则可以帮助您回滚到以前的代码版本,而无需引用特定的提交。

GitHub发行版基于Git标签构建,表示您的代码的完整发行版,以及zip文件,发行说明和二进制资产(可能表示您的代码最终产品的完整版本)。

虽然可以通过编程方式创建Git标签(例如,使用命令行)git程序),创建GitHub版本是通过GitHub UI进行的手动过程。您基本上是告诉GitHub创建一个新版本,并告诉他们要将该版本应用到哪个标签。

比较提交

GitHub提供了许多工具来处理您的代码。

您可能想做的最重要的事情之一就是将一个分支与另一个分支进行比较。或者,将最新提交与当前使用的版本进行比较,以了解随着时间的推移进行了哪些更改。

GitHub允许您使用比较视图,只需添加/compare回购名称,例如:https://github.com/facebook/react/compare

Compare View

例如,在这里我选择比较最新的反应v15.x到最新v16.0.0-rc在撰写本文时可用的版本,以检查更改内容:

Compare React Versions

该视图向您显示所做的承诺在两个版本(或标记或提交引用)之间实际差异如果更改数量低于合理数量

Webhooks和服务

GitHub提供了许多有助于开发人员工作流程的功能。其中之一是webhooks,另一个是服务。

网络挂钩

当存储库中发生某些事件时,例如当推送代码,创建派生,创建或删除标签时,Webhooks允许对外部服务执行ping操作。

当事件发生时,GitHub将POST请求发送到我们告诉它使用的URL。

此功能的常见用法是,当我们从本地计算机推送更新时,对远程服务器执行ping操作以从GitHub获取最新代码。

我们推送到GitHub,GitHub告诉我们推送的服务器,该服务器从GitHub提取。

服务

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

例如,您可以设置一个测试运行程序,以在每次推送一些新的提交时自动运行测试,使用TravisCI

您可以使用以下方式设置持续集成CircleCI

您可以创建一个代码气候集成,用于分析代码并提供技术债务和测试覆盖率的报告。

最后的话

GitHub是一个了不起的工具和服务,可以利用,它是当今开发人员工具集中的真正瑰宝。本教程将帮助您入门,但是不容错过在GitHub(开放源代码(或封闭源代码)项目)上工作的真实经验。


更多git教程: