master ,这是我的小站,欢迎访问哦~~

github搜索正确使用方法

了解搜索语法

从左至右,依次是 watch star fork,下面分别说下他们的具体作用。

下图是Github中各个功能介绍:
在这里插入图片描述

  • watch
    watch翻译过来可以称之为观察,点击watch可以看到如下的列表。
  • star
    star 翻译过来应该是星星,但是这个翻译没任何具体意义,这里解释为关注或者点赞更合适,当你点击 star,表示你喜欢这个项目或者通俗点,可以把他理解成朋友圈的点赞吧,表示对这个项目的支持。
    不过相比朋友圈的点赞,github 里面会有一个列表,专门收集了你所有 start 过的项目,点击 github 个人头像,可以看到 your star的条目,点击就可以查看你 star 过的所有项目了。如下图
  • fork
    当选择 fork,相当于你自己有了一份原项目的拷贝,当然这个拷贝只是针对当时的项目文件,如果后续原项目文件发生改变,你必须通过其他的方式去同步。
    一般来说,我们不需要使用 fork 这个功能,除非有一些项目,可能存在 bug 或者可以继续优化的地方,你想帮助原项目作者去完善这个项目或者单纯的想在原来项目基础上己维护一个属于自己项目(比如我 fork 的 AndroidWeekly 客户端,那么你可以 fork 一份项目下来,然后自己对这个项目进行修改完善,当你觉得项目没问题了,你就可以尝试发起 pull request 给原项目作者了。然后就静静等待他的 merge 邮件通知了。
    我看到很多人错误的在使用 fork。很多人把 fork 当成了收藏一样的功能,包括一开始使用 github 的我,每次看到一个好的项目就先 fork,因为这样,就可以我的 repository(仓库)列表下查看 fork 的项目了。其实你完全可以使用 star 来达到这个目的。

使用建议

  1. 对于一些可能会经常发生变化的会不定期更新的好项目 多使用 watch.
    你就可以 watching 它,这里面都是一些关于 Android 技术的交流,如果有任何新问题,你都可以收到通知,你可以查看别人的回答,你可以回答别人提出的问题,这是一个很好的学习成长方式。只要项目新增一些好玩好用的东西,你就会收到通知。
    值得注意的是,如果 watch多了,你可能会被无休止的邮件通知烦死(邮件通知可设置),因为被 watch 项目有任何留言、PR等更新都会触发通知,所以做好权衡。
  2. 喜欢一个项目就 star 它吧~
  3. 修改开源项目就使用 fork,这样你就可以在原项目的基础上,对项目进行修改提交,现在你是这个项目的主人啦~
  4. 小细节:有些时候,你看到一个项目的 star 数有很多,你就想知道到底都有那些人 star 了这个项目,或者 fork 了这个项目,但是环顾一圈,你却找不到一个入口,后来自己不经意的发现,只要点击 star 傍边的数字,就可以查看有哪些人 star 了这个项目。是不是有点意思,现在你就可以去试试,watch、fork上面的数字都是可以点击的,道理一样。

如何搜索开源项目呢?

比如说要查看项目名中有Springboot,readme中有mvc,description 中有MySQL,stars数量大于50,forks数量大于10,更新日期晚于2022年1月1日,语言是Java的项目。
搜索框应该写:in:name springboot in:readme mvc in:description MySQL stars:>50 forks:>10 pushed:>2022-01-01 language:java
!!!":"一定是英文字符,每个查询关键字之间有空格(没有,;等其他符合)

  • in:name example 查询名字中有“example”的项目。
  • in:readme example 查询readme中有“example”的项目
  • in:description example 描述中有“example”项目
  • stars:>1000 star>1000的项目
  • forks:>1000 fork>1000
  • pushed:>2019-09-01 2019年9月1日后有更新的
  • language:java 用Java编写的项目
    以上就够简单应用啦,以下可以不必了解
    查询大于或小于另一个值的值 您可以使用>、>=、<和<=搜索大于、大于或等于、小于和小于或等于另一个值的值。

询问 例子1

  • n 查看 stars:>1000匹配包含超过 1000 颗星的单词“查看s”的存储库。
  • =n 查看 topics:>=5匹配包含 5 个或更多主题的单词“查看s”的存储库。
  • <n 查看 size:<10000匹配小于 10 KB 的文件中带有单词“查看s”的代码。
  • <=n 查看 stars:<=50匹配包含 50 个或更少星的单词“查看s”的存储库。
  • 您还可以使用范围查询来搜索大于或等于或小于或等于另一个值的值。

询问 例子2

n…* 查看 stars:10…*等价于stars:>=10并匹配具有 10 个或更多星的单词“查看s”的存储库。
…n 查看 stars:…10等效于stars:<=10并匹配包含 10 个或更少星的单词“查看s”的存储库。
查询范围内的值 :您可以使用范围语法搜索范围内的值,其中第一个数字n是最小值,第二个是最大值。n…n

询问 例子3

n…n 查看 stars:10…50匹配包含 10 到 50 颗星的单词“查看s”的存储库。
查询日期: 您可以使用、>=、<、<=和范围查询搜索早于或晚于另一个日期的日期,或者在日期范围内的日期。日期格式必须遵循ISO8601标准,即YYYY-MM-DD(年-月-日)。

询问 例子4

  • YYYY-MM-DD 查看 created:>2016-04-29匹配在 2016 年 4 月 29 日之后创建的带有单词“查看s”的问题。
  • =YYYY-MM-DD 查看 created:>=2017-04-01匹配在 2017 年 4 月 1 日或之后创建的带有单词“查看s”的问题。
  • <YYYY-MM-DD 推送的猫:<2012-07-05匹配 2012 年 7 月 5 日之前推送到的存储库中带有单词“猫”的代码。
  • <=YYYY-MM-DD 查看 created:<=2012-07-04匹配在 2012 年 7 月 4 日或之前创建的带有单词“查看s”的问题。
  • YYYY-MM-DD…YYYY-MM-DD 推送的猫:2016-04-30…2016-07-04匹配在 2016 年 4 月底至 7 月之间推送的带有“猫”一词的存储库。
  • YYYY-MM-DD…* 查看 created:2012-04-30…*匹配 2012 年 4 月 30 日之后创建的包含单词“查看s”的问题。
  • …YYYY-MM-DD 查看 created:…2012-07-04匹配 2012 年 7 月 4 日之前创建的包含单词“查看s”的问题。
  • 您还可以THH:MM:SS+00:00在日期之后添加可选的时间信息,以按小时、分钟和秒进行搜索。即T,后跟HH:MM:SS(小时-分钟-秒)和 UTC 偏移量 ( +00:00)。

询问 例子5

  • YYYY-MM-DDTHH:MM:SS+00:00 查看 created:2017-01-01T01:00:00+07:00…2017-03-01T15:30:15+07:00匹配 2017 年 1 月 1 日凌晨 1 点之间创建的问题,UTC 偏移量为07:003 月 1 日, 2017 年下午 3 点,UTC 偏移量为07:00.
  • YYYY-MM-DDTHH:MM:SSZ 查看 created:2016-03-21T14:11:00Z…2016-04-07T20:45:00Z匹配 2016 年 3 月 21 日下午 2:11 和 2016 年 4 月 7 日晚上 8:45 之间创建的问题。
  • 排除某些结果:NOT您可以使用语法排除包含特定单词的结果。该NOT运算符只能用于字符串关键字。它不适用于数字或日期。

询问 例子6

  • NOT hello NOT world匹配包含单词“hello”但不包含单词“world”的存储库。
  • 缩小搜索结果范围的另一种方法是排除某些子集。您可以在任何搜索限定符前加上 a-以排除与该限定符匹配的所有结果。

询问 例子7

-QUALIFIER 查看s stars:>10 -language:javascript匹配包含超过 10 颗星但不是用 JavaScript 编写的单词“查看s”的存储库。
mentions:defunkt -org:github匹配提及 @defunkt 且不在 GitHub 组织的存储库中的问题

对带有空格的查询使用引号

如果您的搜索查询包含空格,则需要用引号将其括起来。例如:
查看 NOT "hello world"匹配包含单词 “查看s” 但不匹配单词 “hello world” 的存储库。
build label:"bug fix"匹配带有“build”标签且标签为“bug fix”的问题。

非字母数字符号(例如空格)

一些非字母数字符号(例如空格)会从引号内的代码搜索查询中删除,因此结果可能出乎意料。
带有用户名的查询:如果您的搜索查询包含需要用户名的限定符,例如user、actor或assignee,您可以使用任何 GitHub 用户名来指定特定的人,或者@me来指定当前用户。

询问 例子8

  • QUALIFIER:USERNAME author:nat匹配由 @nat 编写的提交
  • QUALIFIER:@me is:issue assignee:@me匹配分配给查看结果的人的问题
  • 您只能@me与限定符一起使用,而不能用作搜索词,例如@me main.workflow.

参考:github中watch,stars,forks的作用
了解搜索语法