社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

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

InfinityNewTab • 6 年前 • 291 次点击  

编者按:开发人员每天都要在工作中使用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上发布的代码,因此您不能期望即时回复。 但是一些开放源代码库由那些围绕该代码提供服务的公司发布,它们会提供具有更多功能的版本或者使用基于插件的系统。 这些公司已经为开源项目付给开发人员工资。

社会编码

几年前,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即可。

例如,

https://github.com/facebook/react/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上工作是不容错过的。


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/jzoA7K3f3p
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/8382
 
291 次点击