美文网首页SourceTree
GitHub搜索语法

GitHub搜索语法

作者: 迷路的小小 | 来源:发表于2022-06-22 10:16 被阅读0次

    普通的搜索

    相信一般人搜索项目时,都是直接搜索技术栈相关的项目。

    高级一点的搜索,会根据 最匹配、最多 Star 来进行排序、选择相应的语言、选择仓库或者代码来进行筛选。

    image.png

    如果你只会用以上的功能,那你知道的仅仅是 GitHub 搜索的冰山一角!

    GitHub 的搜索是非常强大的!下面介绍更高级的搜索技巧。

    搜索语法

    搜索 GitHub 时,你可以构建匹配特定数字和单词的查询。

    1. 查询大于或小于另一个值的值
    • 您可以使用 >、>=、< 和 <= 搜索大于、大于等于、小于以及小于等于另一个值的值。
    查询 示例
    >*n* cats stars:>1000 匹配含有 "cats" 字样、星标超过 1000 个的仓库。
    >=*n* cats topics:>=5 匹配含有 "cats" 字样、有 5 个或更多主题的仓库。
    <*n* cats size:<10000 匹配小于 10 KB 的文件中含有 "cats" 字样的代码。
    <=*n* cats stars:<=50 匹配含有 "cats" 字样、星标不超过 50 个的仓库。
    • 您还可以使用 范围查询 搜索大于等于或小于等于另一个值的值。
    查询 示例
    *n*..* cats stars:10..* 等同于 stars:>=10 并匹配含有 "cats" 字样、有 10 个或更多星号的仓库。
    *..*n* cats stars:*..10 等同于 stars:<=10 并匹配含有 "cats" 字样、有不超过 10 个星号的仓库。
    1. 查询范围之间的值
      您可以使用范围语法 *n*..*n* 搜索范围内的值,其中第一个数字 n 是最低值,而第二个是最高值。
    查询 示例
    *n*..*n* cats stars:10..50 匹配含有 "cats" 字样、有 10 到 50 个星号的仓库。
    1. 查询日期

    您可以通过使用 >>=<<=范围查询搜索早于或晚于另一个日期,或者位于日期范围内的日期。 日期格式必须遵循 ISO8601标准,即 YYYY-MM-DD(年-月-日)。

    查询 示例
    >*YYYY*-*MM*-*DD* cats created:>2016-04-29 匹配含有 "cats" 字样、在 2016 年 4 月 29 日之后创建的议题。
    >=*YYYY*-*MM*-*DD* cats created:>=2017-04-01 匹配含有 "cats" 字样、在 2017 年 4 月 1 日或之后创建的议题。
    <*YYYY*-*MM*-*DD* cats pushed:<2012-07-05 匹配在 2012 年 7 月 5 日之前推送的仓库中含有 "cats" 字样的代码。
    <=*YYYY*-*MM*-*DD* cats created:<=2012-07-04 匹配含有 "cats" 字样、在 2012 年 7 月 4 日或之前创建的议题。
    *YYYY*-*MM*-*DD*..*YYYY*-*MM*-*DD* cats pushed:2016-04-30..2016-07-04 匹配含有 "cats" 字样、在 2016 年 4 月末到 7 月之间推送的仓库。
    *YYYY*-*MM*-*DD*..* cats created:2012-04-30..* 匹配在 2012 年 4 月 30 日之后创建、含有 "cats" 字样的议题。
    *..*YYYY*-*MM*-*DD* cats created:*..2012-07-04 匹配在 2012 年 7 月 4 日之前创建、含有 "cats" 字样的议题。

    您也可以在日期后添加可选的时间信息 THH:MM:SS+00:00,以便按小时、分钟和秒进行搜索。 这是 T,随后是 HH:MM:SS(时-分-秒)和 UTC 偏移 (+00:00)。

    查询 示例
    *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*+*00*:*00* cats created:2017-01-01T01:00:00+07:00..2017-03-01T15:30:15+07:00匹配在 2017 年 1 月 1 日凌晨 1 点(UTC 偏移为 07:00)与 2017 年 3 月 1 日下午 3 点(UTC 偏移为 07:00)之间创建的议题。 UTC 偏移量 07:00,2017 年 3 月 1 日下午 3 点。 UTC 偏移量 07:00
    *YYYY*-*MM*-*DD*T*HH*:*MM*:*SS*Z cats created:2016-03-21T14:11:00Z..2016-04-07T20:45:00Z 匹配在 2016 年 3 月 21 日下午 2:11 与 2016 年 4 月 7 日晚上 8:45 之间创建的议题。
    1. 排除特定结果

    您可以使用 NOT 语法排除包含特定字词的结果。 NOT 运算符只能用于字符串关键词, 不适用于数字或日期。

    查询 示例
    NOT hello NOT world 匹配含有 "hello" 字样但不含有 "world" 字样的仓库。

    缩小搜索结果范围的另一种途径是排除特定的子集。 您可以为任何搜索限定符添加 - 前缀,以排除该限定符匹配的所有结果。

    查询 示例
    -*QUALIFIER* cats stars:>10 -language:javascript 匹配含有 "cats" 字样、有超过 10 个星号但并非以 JavaScript 编写的仓库。
    mentions:defunkt -org:github 匹配提及 @defunkt 且不在 GitHub 组织仓库中的议题
    1. 对带有空格的查询使用引号

    如果搜索含有空格的查询,您需要用引号将其括起来。 例如:

    某些非字母数字符号(例如空格)会从引号内的代码搜索查询中删除,因此结果可能出乎意料。

    1. 使用用户名的查询

    如果搜索查询包含需要用户名的限定符,例如 useractorassignee,您可以使用任何 GitHub 用户名指定特定人员,或使用 @me 指定当前用户。

    查询 示例
    QUALIFIER:USERNAME author:nat 匹配 @nat 创作的提交。
    QUALIFIER:@me is:issue assignee:@me 匹配已分配给结果查看者的议题

    @me 只能与限定符一起使用,而不能用作搜索词,例如 @me main.workflow

    1. 按语言搜索

    通过 language 限定符,您可以搜索以特定语言编写的仓库内的议题和拉取请求。

    限定符 示例
    language:*LANGUAGE* language:ruby state:open 匹配 Ruby 仓库中的开放议题。

    具体参考:GitHub文档

    相关文章

      网友评论

        本文标题:GitHub搜索语法

        本文链接:https://www.haomeiwen.com/subject/uugyvrtx.html