GitHub竟然还有这些骚操作,赶紧学起来

349 阅读6分钟

GitHub常用词

相信大家接触GitHub应该是从学习Git开始的吧,至少我是这样的,刚开始真的是什么都不懂,因为是一个英文网站,加上不熟悉,所以对GitHub的使用也非常局限。

先来介绍一下GitHub的常用词,常用词是什么?看下面的图:

红色框线标注的部分相信大家都不陌生吧,是不是感觉虽然很熟悉,但是又谈不上很了解呢,我来介绍一下:

  • Used by:使用者,记录的是使用该项目的人数
  • Watch:这里可以设置通知级别

  • 你可以选择仅在关注时接收该项目动态、或者接受该项目所有动态、或者永不接受动态
  • Star:这是点赞功能,没啥可说的
  • Fork:这里可以拉取项目,若你想贡献代码,可以借助Fork将项目拉取到自己的远程库

GitHub精确搜索

在做一个项目之前,你首先应该考虑到在GitHub中是否能找到一个基本架构,然后在上面修改即可;或者在编写项目的过程中,遇到一个需求,你也可以在GitHub上找找看是否有现成的可以引用。

根据关键词搜索

举个栗子,你正在编写一个商城项目,其中涉及到支付功能,这个支付功能虽然自己很熟悉,但是真要自己写,好像有些难度,别担心,可以去GitHub上搜搜看,于是你来到GitHub进行搜索:


在搜索框输入pay,此时的搜索结果有六万多条,你高兴坏了,原来有这么多项目可以给自己用,但是,要想在这六万多个项目中找出一个来用,就有些难度了,有些项目跟自己的需求根本不沾边。

所以,直接用pay进行搜索,显然是不够好的,那么,我们可以借助一些关键词进行精确搜索,比如:

  • in:name:项目名包含指定字符
  • in:readme:自述文件包含指定字符
  • in:description:项目描述包含指定字符
  • 有了这些关键词,我们就可以对需要查找的项目进行精确搜索。比如我想要查找项目名中包含pay字符串的项目,那么你只需要搜索pay in:name即可:


    这样我们便可以忽略项目名中不包含pay字符串的项目,我们认为这样的项目不适合我们。

    我们可以继续限定,比如我想搜索项目名、自述文件和项目描述中都含有pay字符串的项目,那我们就可以这样搜索payin:name,readme,description:

    通过这样的限定,能够让查询出来的项目更加符合我们的需求。

    当然你也可以限定每个关键词的字符,比如这样搜索pay in:name 支付宝 in:description:

    意思是说,查找项目名中包含"pay",项目描述中包含"支付宝"的项目。

    根据点赞数和Fork数搜索

    刚才通过关键词对项目的限定,我们能够更加精确地搜索到想要的项目,当然,我们还可以通过点赞数和Fork数来实现精确搜索。一般来说,点赞数和Fork数高的项目都是好项目。

    比如我使用关键词搜索:pay in:name 支付宝 in:description,发现搜索结果仍然有将近800条,那么如何从这800个项目中快速找到好项目呢?我们来搜索一下高点赞数的项目,它有两种搜索方式:

    大于等于符号:stars:>1000、stars:<=5000

    区间范围数字:数字1…数字2

    现在我想在这800个项目中搜索点赞数超过100的项目,应该搜索pay in:name 支付宝 in:description stars:>500:


    现在搜索结果只剩下8个了,我们就可以浏览一下这8个项目,看看哪个项目适合我们,这样工作量明显就下降了。

    你还可以借助数字区间搜索,比如你想搜索点赞数400到500范围内的项目,你就可以输入pay in:name 支付宝 in:description stars:400..500:

    那么按照Fork数来进行搜索,操作方式和点赞数搜索一样,比如我想搜索Fork数在3000以上的SpringBoot项目,可以输入springboot forks:>3000:

    搜索结果只有四个,这四个项目Fork数这么高,肯定是一些好项目,你就可以通过这些项目来进行学习,不断地提升自己了,所以,不要总说自己没有学习资料,GitHub上应有尽有。

    当然,它们也可以组合使用,具体就不演示了。

    awesome搜索

    什么是awesome搜索?我们先来搜索一下,输入awesome springmvc:

    搜索结果只有四条,而且你会发现这四个项目都是学习教程,事实上,awesome系列就是用来收集学习、工具、书籍类的相关项目,而我们通过awesome搜索就能够找到这些项目。

    所以,如果你想学习某个框架,某个知识点,就可以使用awesome来搜索学习资源。

    实现代码高亮

    这是GitHub上某个项目中的一个文件代码,若我想将这个文件的代码发送给别人看,那么只需将网页上的地址发送给别人即可,但如果该文件的代码量特别大,而我想提醒别人从哪个地方开始看,你就可以使用代码高亮。

    那么问题是如何实现呢?

    我们先把当前的网址复制下来:

    https://github.com/BlackmodeN/AwesomeBlog/blob/master/src/blog/dao/ArticleDao.java

    比如你想要第14行高亮,那么很简单,在地址后面拼接一个#L关键字,并加上行号:

    https://github.com/BlackmodeN/AwesomeBlog/blob/master/src/blog/dao/ArticleDao.java#L14

    效果如下图:

    而如果你想高亮显示一段代码,比如高亮显示第1行到第14行,也非常简单,修改网址:

    https://github.com/BlackmodeN/AwesomeBlog/blob/master/src/blog/dao/ArticleDao.java#L1-L14

    看效果:

    文件查找程序

    何为文件查找程序?我们先来到一个项目中:


    假设我想查看一下这个项目的文件内容,你不是得进入到各个文件夹内,然后文件里又有子文件夹,并且由于GitHub访问比较缓慢,导致你在浏览整个项目的时候会花费大量的时间。

    其实,你完全不用这样,你可以使用文件查找程序来浏览项目,使用方式:在当前项目页面,按下字母T,便会激活文件查找程序,看效果:

    所有文件一目了然。

    我们随意进入到一个文件中:


    这时候我们若想跳转到某行代码,也是可以实现的,在该页面按下字母L,浏览器会弹出一个窗口:

    输入60,点击Go,此时页面跳转到第60行代码,效果如下:

    按下字母W,还能切换项目分支:


    关于GitHub的快捷键其实还有很多,这里就不一一列举了,就介绍了几个常用的。

    搜索活跃用户

    若想要在GitHub上搜索一些活跃用户,搜索一些行业内的大佬,该如何做呢?

    很简单,比如我学的是Java,我想搜索在杭州比较活跃的Java技术大佬,就可以输入location:hangzhoulanguage:java:



    这样就可以搜索到了。