被称为“开发者神器”的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上发布的代码,因此您不能期望即时回复。 但是一些开放源代码库由那些围绕该代码提供服务的公司发布,它们会提供具有更多功能的版本或者使用基于插件的系统。 这些公司已经为开源项目付给开发人员工资。
社会编码
几年前,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
原文链接:
编译组出品。编辑:郝鹏程
被称为“开发者神器”的GitHub,到底该怎么用?的更多相关文章
- 【ZZ】号称“开发者神器”的GitHub,到底该怎么用?
号称“开发者神器”的GitHub,到底该怎么用? https://mp.weixin.qq.com/s/zpKOBMKWckY05Mv_B28RgQ A developer’s introductio ...
- 五年 Web 开发者 star 的 github 整理说明
欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:樊东东 前端从业几年,积累了不少github开源库. 有时候想查阅以前star的库,但不好找,github大多库都是英文说明,对中文 ...
- windows 开发者神器 tc – total command和替代品
作为开发者,windows上开发时,会运用一些神器,比如:total commander,搜索目录.查看文件.批量重命名等非常方便. tc是收费版的,有个免费的替代版本Just manager:htt ...
- 一年一度!GitHub 开发者大会「GitHub 热点速递 v.22.45」
GitHub 是全球最大的开源社区,它的一举一动都深受每一位开源爱好者的关注.这周末刚落下帷幕的<GitHub Universe 2022>是 GitHub 发布最新产品.功能.报告和计划 ...
- Git与GitHub到底有什么联系?
Git与GitHub区别 git 是一个软件 版本控制器 分享合并代码, 团队开发 时间机器, 可以获取到任意阶段时间节点开发的代码, 代码找回 git, cvs, bitkeeper, svn 典型 ...
- Android开发者的Git&GitHub(二)
将代码托管到GitHub上 点击右上角New repository按钮来创建一个版本库 命名后选择添加一个Android项目类型的.gitignore文件,并选择开源协议(例如:Apache v2 ...
- Android开发者的Git&Github(一)
安装Git: Linux(以Ubuntu为例): sudo apt-get install git-core Windows: 访问网址http://msysgit.github.io/下载安装包 下 ...
- octotree神器 For Github and GitLab 火狐插件
Code tree for GitHub and GitLabExtension to show code tree for GitHub and GitLab. Useful for develop ...
- 开发者神器!Windows上最强大的虚拟桌面工具-Dexpot
简介 : 用过Linux和Mac计算机的人都知道 , 这两个系统上都有个多桌面的功能非常使用 . 而在Windows上并没有该项功能 , 虽然目前Win10已经增加了多桌面的程序 , 但使用上仍体验不 ...
随机推荐
- dubbo 异步回调
dubbo 异步回调的使用 业务接口: public interface HelloService { String sayHello(); void sayHi(String name); } 回调 ...
- QLineSeries QChartView 生成折线
效果图 // 创建折线上点的序列 QLineSeries *splineSeries = new QLineSeries(); //QSplineSeries *splineSeries = new ...
- fedora liveuser 切换root;su -l root
安装完Fedora 14后,默认没有启用sudo,首先应该是对sudo进行设置.sudo的作用就是使当前非root用户在使用没有权限的命令时,直接在命令前加入sudo,在输入自己当前用户的密码就可以完 ...
- unity5.x中的关节和布料
关节 布料 关节 铰链关节(Hinge Joint):将两个物体以链条的形式绑在一起,当力量过大超过链条的固定力矩时,两个物体就会产生相互的拉力. 固定关节(Fixed Joint): ...
- Python之路,Day9 - 异步IO\数据库\队列\缓存
https://www.cnblogs.com/alex3714/articles/5248247.html http://www.cnblogs.com/wupeiqi/articles/51327 ...
- fastTime从后台传过来显示格式的处理
1.可以在控制台用syso查看 QuestionFeedbackView qfv = on_LineManageService.getBringupHead(projectNo);//qfv是一个内含 ...
- mysql中describe关键字
今天写代码的时候,有一个类的数据始终不能插入,老是提示在You have an error in your SQL syntax; check the manual that corresponds ...
- Fiddler常用命令
几个常用的命令行方法使用: 查找对应响应码的数据包或请求类型的数据包: 输入“=post”将选择post的数据包并用蓝色底标色 输入:=502 查找服务器返回是图片类型的请求 输入 select im ...
- python自学第13天 hashlib,re模块
import hashlib sha=hashlib.sha3_512()#定义加密成什么格式 sha.update('how to use sha1 in 年后 '.encode('utf-8')) ...
- js 异常判断
/** * 预处理response * @param rep */ function validateRep(rep) { try{ if(rep.status==false){ layer.open ...