身為程序員 你真的會(huì)使用github搜索嗎?
前言
?
github
作為全球最大的開源軟件項(xiàng)目托管平臺(tái)筐带,我相信不少程序員都在使用今穿。但是你真的會(huì)使用github的搜索功能
嗎?
?我們經(jīng)常會(huì)在GitHub上搜索
代碼伦籍、項(xiàng)目蓝晒、用戶或查找相關(guān)主題
腮出,最簡單常用的方法是在GitHub主頁搜索框中
直接輸入相關(guān)信息進(jìn)行查找
,比如我們要搜索spring-boot
相關(guān)項(xiàng)目如下圖所示:
那如何能精準(zhǔn)定位到我們需要找的代碼芝薇、項(xiàng)目胚嘲、用戶或查找相關(guān)主題
呢?本文就詳細(xì)來講一下在GitHub上如何精準(zhǔn)搜索的巧妙技巧
洛二。
搜索語法篇
常用詞含義
- watch:會(huì)持續(xù)收到該項(xiàng)目的動(dòng)態(tài)
- fork:復(fù)制某個(gè)倉庫到自己的Github倉庫中
- star:可以理解為點(diǎn)贊
- clone:將項(xiàng)目下載至本地
- follow:關(guān)注你感興趣的作者馋劈,會(huì)收到他們的動(dòng)態(tài)
搜索 GitHub 時(shí),可以構(gòu)建匹配特定數(shù)字和單詞的查詢晾嘶。
查詢大于或小于另一個(gè)值的值
可以使用 >妓雾、>=、< 和 <= 搜索大于垒迂、大于等于械姻、小于以及小于等于另一個(gè)值的值。
查詢 | 示例 |
---|---|
>n | spring-boot stars:>2000 匹配含有 "spring-boot" 字樣机断、星標(biāo)超過 1000 個(gè)的倉庫楷拳。 |
>=n | spring-boot topics:>=5 匹配含有 "spring-boot" 字樣、有 5 個(gè)或更多主題的倉庫吏奸。 |
<n | spring-boot size:<10000 匹配小于 10 KB 的文件中含有 "spring-boot" 字樣的代碼欢揖。 |
<=n | spring-boot stars:<=50 匹配含有 "spring-boot" 字樣、星標(biāo)不超過 50 個(gè)的倉庫奋蔚。 |
<img src = "https://media.giphy.com/media/ZgthKMd4r4B8wxYgPW/source.gif">
還可以使用范圍查詢搜索大于等于或小于等于另一個(gè)值的值她混。
查詢 | 示例 |
---|---|
n..* | spring-boot stars:5000..* 等同于 stars:>=5000 并匹配含有 "spring-boot" 字樣、有 5000 個(gè)或更多星號的倉庫旺拉。 |
*..n | spring-boot stars:*..20 等同于 stars:<=20 并匹配含有 "spring-boot" 字樣产上、有不超過 20 個(gè)星號的倉庫。 |
查詢范圍之間的值
可以使用范圍語法 n..n 搜索范圍內(nèi)的值蛾狗,其中第一個(gè)數(shù)字 n 是最低值晋涣,而第二個(gè)是最高值。
查詢 | 示例 |
---|---|
n..n | spring-boot stars:4000..5000 匹配含有 "spring-boot" 字樣沉桌、有4000到5000個(gè)星號的倉庫 |
查詢?nèi)掌?/h3>
可以通過使用 >谢鹊、>=、<留凭、<= 和范圍查詢搜索早于或晚于另一個(gè)日期佃扼,或者位于日期范圍內(nèi)的日期。 日期格式必須遵循 ISO8601標(biāo)準(zhǔn)蔼夜,即 YYYY-MM-DD(年-月-日)兼耀。
可以通過使用 >谢鹊、>=、<留凭、<= 和范圍查詢搜索早于或晚于另一個(gè)日期佃扼,或者位于日期范圍內(nèi)的日期。 日期格式必須遵循 ISO8601標(biāo)準(zhǔn)蔼夜,即 YYYY-MM-DD(年-月-日)兼耀。
查詢 | 示例 |
---|---|
>YYYY-MM-DD | spring-boot created:>2016-04-29 匹配含有 "spring-boot" 字樣、在 2016 年 4 月 29 日之后創(chuàng)建的議題。 |
>=YYYY-MM-DD | spring-boot created:>=2017-04-01 匹配含有 "spring-boot" 字樣瘤运、在 2017 年 4 月 1 日或之后創(chuàng)建的議題窍霞。 |
<YYYY-MM-DD | spring-boot pushed:<2012-07-05 匹配在 2012 年 7 月 5 日之前推送的倉庫中含有 "spring-boot" 字樣的代碼。 |
<=YYYY-MM-DD | spring-boot created:<=2012-07-04 匹配含有 "spring-boot" 字樣拯坟、在 2012 年 7 月 4 日或之前創(chuàng)建的議題但金。 |
YYYY-MM-DD..YYYY-MM-DD | spring-boot pushed:2016-04-30..2016-07-04 匹配含有 "spring-boot" 字樣、在 2016 年 4 月末到 7 月之間推送的倉庫 |
YYYY-MM-DD..* | spring-boot created:2012-04-30..* 匹配在 2012 年 4 月 30 日之后創(chuàng)建郁季、含有 "spring-boot" 字樣的議題冷溃。 |
*..YYYY-MM-DD | spring-boot created:*..2012-07-04 匹配在 2012 年 7 月 4 日之前創(chuàng)建、含有 "spring-boot" 字樣的議題梦裂。 |
也可以在日期后添加可選的時(shí)間信息 THH:MM:SS+00:00似枕,以便按小時(shí)、分鐘和秒進(jìn)行搜索塞琼。 這是 T菠净,隨后是 HH:MM:SS(時(shí)-分-秒)和 UTC 偏移 (+00:00)禁舷。
查詢 | 示例 |
---|---|
YYYY-MM-DDTHH:MM:SS+00:00 | spring-boot created:2017-01-01T01:00:00+07:00..2017-03-01T15:30:15+07:00 匹配在 2017 年 1 月 1 日凌晨 1 點(diǎn)(UTC 偏移為 07:00)與 2017 年 3 月 1 日下午 3 點(diǎn)(UTC 偏移為 07:00)之間創(chuàng)建的議題彪杉。 UTC 偏移量 07:00,2017 年 3 月 1 日下午 3 點(diǎn)牵咙。 UTC 偏移量 07:00派近。 |
YYYY-MM-DDTHH:MM:SSZ | spring-boot created:2016-03-21T14:11:00Z..2016-04-07T20:45:00Z 匹配在 2016 年 3 月 21 日下午 2:11 與 2016 年 4 月 7 日晚上 8:45 之間創(chuàng)建的議題。 |
這里就不演示了洁桌,跟上面是一樣的渴丸,自行測試。
排除特定結(jié)果
可以使用
NOT 語法
排除包含特定字詞的結(jié)果另凌。NOT 運(yùn)算符只能用于字符串關(guān)鍵詞
谱轨,不適用于數(shù)字或日期
。
查詢 | 示例 |
---|---|
NOT | hello NOT world 匹配含有 "hello" 字樣但不含有 "world" 字樣的倉庫吠谢。 |
縮小搜索結(jié)果范圍的另一種途徑是排除特定的子集土童。 您可以為任何搜索限定符添加
-
前綴,以排除該限定符匹配的所有結(jié)果工坊。
查詢 | 示例 |
---|---|
-QUALIFIER | spring-boot stars:>1000 -language:kotlin 匹配含有 "spring-boot" 字樣献汗、有超過 1000 個(gè)星號但并非以 kotlin 編寫的倉庫。 |
mentions:defunkt -org:github 匹配提及 @defunkt 且不在 GitHub 組織倉庫中的議題 |
對帶有空格的查詢使用引號
如果搜索含
有空格
的查詢王污,您需要用引號將其括起來
罢吃。
- spring-boot NOT "hello world" 匹配含有 "spring-boot" 字樣但不含有 "hello world" 字樣的倉庫。
- build label:"bug fix" 匹配具有標(biāo)簽 "bug fix"昭齐、含有 "build" 字樣的議題尿招。
某些非字母數(shù)字符號(例如空格)
會(huì)從引號內(nèi)的代碼
搜索查詢中刪除,因此結(jié)果可能出乎意料。
使用用戶名的查詢
如果搜索查詢包含
需要用戶名
的限定符就谜,例如user
把沼、actor
或assignee
,您可以使用任何 GitHub 用戶名指定特定人員吁伺,或使用@me
指定當(dāng)前用戶饮睬。
查詢 | 示例 |
---|---|
QUALIFIER:USERNAME | author:nat 匹配 @nat 創(chuàng)作的提交。 |
QUALIFIER:@me | is:issue assignee:@me 匹配已分配給結(jié)果查看者的議題 |
@me 只能與限定符一起使用篮奄,而不能用作搜索詞捆愁,例如 @me main.workflow。
高級檢索-搜索倉庫
按倉庫名稱窟却、說明或自述文件內(nèi)容搜索
通過
in
限定符昼丑,您可以將搜索限制為倉庫名稱
、倉庫說明
夸赫、自述文件內(nèi)容
或這些的任意組合
菩帝。 如果省略此限定符,則只搜索倉庫名稱和說明
茬腿。
限定符 | 示例 |
---|---|
in:name | seckill in:name 匹配倉庫名稱中含有 "seckill" 的倉庫呼奢。 |
in:description | seckill in:name,description 匹配倉庫名稱或說明中含有 "seckill" 的倉庫 |
in:readme | seckill in:readme 匹配倉庫自述文件中提及 "seckill" 的倉庫。 |
repo:owner/name | repo:codingXiaxw/seckill 匹配特定倉庫名稱切平。 |
在用戶或組織的倉庫內(nèi)搜索
要在
特定用戶
或組織
擁有的所有倉庫
中搜索仗扬,您可以使用user
或org
限定符述暂。
限定符 | 示例 |
---|---|
user:USERNAME | user:defunkt forks:>100 匹配來自 @defunkt、擁有超過 100 復(fù)刻的倉庫。 |
org:ORGNAME | org:github 匹配來自 GitHub 的倉庫舱馅。 |
按倉庫大小搜索
size
限定符使用大于笑陈、小于和范圍限定符
查找匹配特定大幸畚啤(以千字節(jié)
為單位)的倉庫蟀瞧。
限定符 | 示例 |
---|---|
size:n | size:1000 匹配恰好為 1 MB 的倉庫。 |
size:>=30000 匹配至少為 30 MB 的倉庫届氢。 | |
size:<50 匹配小于 50 KB 的倉庫欠窒。 | |
size:50..120 匹配介于 50 KB 與 120 KB 之間的倉庫。 |
按關(guān)注者數(shù)量搜索
可以使用
followers
限定符以及大于悼沈、小于和范圍限定符
贱迟,基于關(guān)注倉庫
的用戶數(shù)量
過濾倉
庫。
限定符 | 示例 |
---|---|
followers:n | spring-boot followers:>=10000匹配有 10000 或更多關(guān)注者提及文字 "spring-boot" 的倉庫絮供。 |
spring followers:1..10 匹配擁有 1 到 10 個(gè)關(guān)注者并且提及 "spring" 一詞的的倉庫衣吠。 |
按復(fù)刻數(shù)量搜索
forks
限定符使用大于、小于和范圍限定符
指定倉庫應(yīng)具有的復(fù)刻數(shù)量
壤靶。
| 限定符| 示例 |
| :--: | :--:|
|forks:n| forks:5 匹配只有 5 個(gè)復(fù)刻的倉庫缚俏。|
| | forks:>=205 匹配具有至少 205 個(gè)復(fù)刻的倉庫。|
| | forks:<90 匹配具有少于 90 個(gè)復(fù)刻的倉庫。|
| | forks:10..20 匹配具有 10 到 20 個(gè)復(fù)刻的倉庫忧换。|
[圖片上傳失敗...(image-a295b5-1622946182737)]
按星號數(shù)量搜索
可以使用大于恬惯、小于和范圍限定符,基于倉庫的星標(biāo)數(shù)量來搜索倉庫亚茬。
限定符 | 示例 |
---|---|
stars:n | stars:500 匹配恰好具有 500 個(gè)星號的倉庫酪耳。 |
stars:10..20 匹配具有 10 到 20 個(gè)星號、小于 1000 KB 的倉庫刹缝。 | |
stars:>=500 fork:true language:php 匹配具有至少 500 個(gè)星號碗暗,包括復(fù)刻的星號(以 PHP 編寫)的倉庫。 |
按倉庫創(chuàng)建或上次更新時(shí)間搜索
?可以基于
創(chuàng)建時(shí)間
或上次更新時(shí)間
過濾倉庫梢夯。 對于倉庫創(chuàng)建
言疗,您可以使用created 限定符
;要了解倉庫上次更新
的時(shí)間颂砸,您要使用pushed
限定符噪奄。 pushed 限定符將返回倉庫列表,按倉庫中任意分支上最近進(jìn)行的提交排序人乓。
?兩者均采用日期作為參數(shù)
勤篮。日期格式必須遵循 ISO8601標(biāo)準(zhǔn)
,即YYYY-MM-DD(年-月-日)
撒蟀。 您也可以在日期后添加可選的時(shí)間信息 THH:MM:SS+00:00
叙谨,以便按小時(shí)
、分鐘
和秒
進(jìn)行搜索保屯。 這是 T,隨后是 HH:MM:SS(時(shí)-分-秒)和 UTC 偏移 (+00:00)涤垫。
限定符 | 示例 |
---|---|
created:YYYY-MM-DD | webos created:<2011-01-01 匹配具有 "webos" 字樣姑尺、在 2011 年之前創(chuàng)建的倉庫。 |
pushed:YYYY-MM-DD | css pushed:>2013-02-01 匹配具有 "css" 字樣蝠猬、在 2013 年 1 月之后收到推送的倉庫切蟋。 |
case pushed:>=2013-03-06 fork:only 匹配具有 "case" 字樣、在 2013 年 3 月 6 日或之后收到推送并且作為復(fù)刻的倉庫榆芦。 |
按語言搜索
可以根據(jù)倉庫中代碼的語言搜索倉庫柄粹。
限定符 | 示例 |
---|---|
language:LANGUAGE | rails language:javascript 匹配具有 "rails" 字樣、以 JavaScript 編寫的倉庫匆绣。 |
按主題搜索
可以找到按特定主題分類的所有倉庫驻右。
| 限定符| 示例 |
| :--: | :--:|
|topic:TOPIC| topic:jekyll匹配已歸類為 "jekyll" 主題的倉庫。|
按主題數(shù)量搜索
可以使用
topics
限定符以及大于崎淳、小于和范圍限定符堪夭,根據(jù)應(yīng)用于倉庫的主題數(shù)量來搜索倉庫。
限定符 | 示例 |
---|---|
topics:n | topics:5 匹配具有五個(gè)主題的倉庫。 |
topics:>3 匹配超過三個(gè)主題的倉庫森爽。 |
按許可搜索
可以根據(jù)
倉庫中許可的類型
搜索倉庫恨豁。 您必須使用許可關(guān)鍵字
,按特定許可或許可系列來過濾倉庫爬迟。
限定符 | 示例 |
---|---|
license:LICENSE_KEYWORD | license:apache-2.0 匹配根據(jù) Apache License 2.0 授權(quán)的倉庫 |
按倉庫可見性搜索
可以根據(jù)
倉庫的可見性
過濾搜索橘蜜。
限定符 | 示例 |
---|---|
is:public | is:public org:github 匹配 GitHub 擁有的公共倉庫。 |
is:internal | is:internal test 匹配您可以訪問并且包含單詞 "test" 的內(nèi)部倉庫付呕。 |
is:private | is:private pages 匹配您可以訪問并且包含單詞 "pages" 的私有倉庫扮匠。 |
基于倉庫是否為鏡像搜索
可以根據(jù)
倉庫是否為鏡像
以及托管于其他位置托管
來搜索倉庫。
限定符 | 示例 |
---|---|
mirror:true | mirror:true GNOME 匹配是鏡像且包含 "GNOME" 字樣的倉庫凡涩。 |
mirror:false | mirror:false GNOME 匹配并非鏡像且包含 "GNOME" 字樣的倉庫棒搜。 |
基于倉庫是否已存檔搜索
可以基于倉庫
是否已存檔
來搜索倉庫。
限定符 | 示例 |
---|---|
archived:true | archived:true GNOME 匹配已存檔且包含 "GNOME" 字樣的倉庫活箕。 |
archived:false | archived:false GNOME 匹配未存檔且包含 "GNOME" 字樣的倉庫力麸。 |
基于具有 good first issue 或 help wanted 標(biāo)簽的議題數(shù)量搜索
可以使用限定符
help-wanted-issues:>n
和good-first-issues:>n
搜索具有最少數(shù)量標(biāo)簽
為help-wanted
或good-first-issue
議題的倉庫。
限定符 | 示例 |
---|---|
good-first-issues:>n | good-first-issues:>2 javascript 匹配具有超過兩個(gè)標(biāo)簽為 good-first-issue 的議題且包含 "javascript" 字樣的倉庫育韩。 |
help-wanted-issues:>n | help-wanted-issues:>4 react 匹配具有超過四個(gè)標(biāo)簽為 help-wanted 的議題且包含 "React" 字樣的倉庫克蚂。 |
高級檢索-搜索用戶
按用戶擁有的倉庫數(shù)量搜索
可以使用 repos 限定符以及大于、小于和范圍限定符基于用戶擁有的倉庫數(shù)量過濾用戶筋讨。
限定符 | 示例 |
---|---|
repos:n | repos:>9000 匹配其倉庫數(shù)超過 9,000 的用戶埃叭。 |
bert repos:10..30 匹配擁有 10 到 30 個(gè)倉庫、其用戶名或真實(shí)姓名含有 "bert" 字樣的用戶悉罕。 |
按倉庫語言搜索
使用
language
限定符赤屋,您可以基于用戶所擁有倉庫的語言搜索用戶。
限定符 | 示例 |
---|---|
language:LANGUAGE | location:beijing language:java 匹配恰好有一個(gè)倉庫位于北京的java語言用戶壁袄。 |
按位置搜索
可以按其
個(gè)人資料
中指示的位置
搜索用戶类早。
限定符 | 示例 |
---|---|
location:LOCATION | location:beijing language:java 匹配恰好有一個(gè)倉庫位于北京的java語言用戶。 |
搜索某個(gè)地區(qū)內(nèi),某種語言的大佬
location:beijing language:java
按關(guān)注者數(shù)量搜索
可以使用
followers
限定符以及大于嗜逻、小于和范圍限定符基于用戶擁有的關(guān)注者數(shù)量
過濾用戶涩僻。
限定符 | 示例 |
---|---|
followers:n | followers:>=1000 匹配有 1,000 個(gè)或更多關(guān)注者的用戶。 |
sparkle followers:1..10 匹配具有 1 到 10 個(gè)關(guān)注者栈顷、其名稱中含有 "sparkle" 字樣的用戶逆日。 |
高級檢索-擴(kuò)展
awesome加強(qiáng)搜索
- 公式:
awesome 關(guān)鍵字
:awesome系列,一般用來收集學(xué)習(xí)萄凤、工具室抽、書籍類相關(guān)的項(xiàng)目
- 搜索優(yōu)秀的
redis相關(guān)
的項(xiàng)目,包括框架
蛙卤,教程
等 awesome redis
高亮顯示某行代碼
- 一行:地址后面緊跟 #L10
https://github.com/redis/redis/blob/unstable/redis.conf#L12 - 多行:地址后面緊跟 #Lx - #Ln
https://github.com/redis/redis/blob/unstable/redis.conf#L12-L45
項(xiàng)目內(nèi)搜索
使用英文字母 t ,開啟項(xiàng)目內(nèi)搜索
項(xiàng)目地址:https://github.com/redis/redis,進(jìn)去之后 按t
這里我再推薦一個(gè)很好用的GitHub chrome插件:
Octotree
生命不止狠半,學(xué)習(xí)不息噩死。
結(jié)束語
感謝閱讀小生文章。祝大家早日富可敵國神年,實(shí)現(xiàn)財(cái)富自由已维。
寫文不易
,一定要點(diǎn)贊、評論已日、收藏哦
,感謝感謝感謝!!!