被称为“开发者神器”的GitHub,如何使用能提高工作效率??

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

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

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

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

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

  为什么选择 GitHub?

  现在你知道了 GitHub 是什么,你可能会问为什么需要使用 GitHub。

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

  除个人喜好和技术原因外,还有一个重要原因:每个人都在使用 GitHub,因此其网络效应不可小觑。

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

  所以今天,你在查找一些软件库时,99% 的情况下会在 GitHub 上找到它。

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

  现在让我们了解一下开发人员需要知道的有关 Git 的概念。

  GitHub Issues

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

  项目的所有者可以利用它组织,标记和将 issue 与里程碑关联。

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

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

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

  社会编码

[[221772]]

  几年前,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 项目:

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

  一旦一个人提交了 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 即可。

  例如,https://github.com/facebook/react/compare

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

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

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

  该视图向您展示了两个版本(或标签或 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

责任编辑:张燕妮 来源: 36Kr
相关推荐

2023-10-24 17:45:31

AI

2019-04-03 09:58:00

GitHub代码开发者

2009-05-14 11:43:56

2009-05-15 16:36:34

EclipseIDE效率

2021-06-07 14:36:58

iPadSiri办公

2011-03-22 14:57:58

2011-09-13 19:46:57

2014-03-20 16:18:30

码农工作效率

2019-08-30 14:25:03

Vim命令Linux

2012-03-12 13:35:10

开发

2020-11-26 10:29:01

Redis

2012-07-04 15:42:22

Web

2009-07-06 13:38:29

JSPInitJSPDestory

2016-09-23 20:22:51

WordPressMarkdown工作效率

2018-06-11 10:38:56

Vim使用技巧

2019-07-17 05:02:14

物联网工作效率IOT

2020-12-11 10:00:17

工具代码Windows

2023-05-15 06:55:27

ChatGPTPrompt

2019-12-29 15:41:42

终端命令Unix系统

2013-05-23 09:24:03

BYODBYOD策略思科BYOD
点赞
收藏

51CTO技术栈公众号