Github 搜尋技巧
本文快速精練的說明如何在 Github 進行條件搜尋,一般大概也只會用本文列出的這些,而且 Github 搜尋功能不是非常完美,光是這些常用的選項有時候搜尋結果就不如預期了。
語法
詳情請參考官方文檔,這甚至多達二十篇文章,本文會摘要文檔中的常用語法。
基本語法
> >= ..
語法為 filter,例如 stars:>100、forks:100..500、pushed:>=2024-01-01OR
NOT
AND
bool 語法-
排除 qualifiers,例如 -language:javascript,與他相似的 NOT 是用於文字搜尋sort
用於排序,可排序項目很多請看文檔""
用於精確匹配相同,和 Google 搜尋一樣用法
1. 程式碼內容搜尋
在只想搜尋某檔案名稱、檔案包含某文字時非常實用。
in:file
/in:path
/in:name
- 分別搜尋文件內容/路徑/儲存庫名稱extension:js
- 搜尋特定副檔名- 已經失效,放上來提醒大家filename:webpack.config.js
path
- 搜尋特定路徑,也可以搜尋檔名
2. 儲存庫元資料
過濾老專案、沒更新專案、沒流量專案時非常有用。
stars:>1000
/forks:>500
/size:>1000
- 分別搜尋星星數大於 1000、分支數大於 500、大於 1000KB 的專案。pushed:>2023-01-01
/created:>2023-01-01
- 分別搜尋指定日期後更新/建立的專案。
3. 語言與主題
language:javascript
- 搜尋特定程式語言topic:react
- 搜尋特定主題標籤(有些 repo 不見得會標示自己的 topic)
4. 使用者相關
user:username
- 搜尋特定使用者的儲存庫org:organization
- 搜尋特定組織的儲存庫followers:>1000
- 搜尋關注者超過 1000 的使用者
5. 狀態與授權
is:public
- 搜尋公開儲存庫is:private
- 搜尋私人儲存庫license:mit
- 搜尋使用 MIT 授權的專案archived:true
- 搜尋已封存的儲存庫
6. Issue 搜尋
搜尋 issue 用的 filter,見文檔。
label:<name>
- 搜尋指定標籤,例如 label:"good first issue"reason:<name>
- 搜尋 reason 標籤state:open
- 還沒解決
使用範例
情境一:尋找適合新手的 React Native 開源專案
假設你是一位想貢獻開源的 React Native 開發 者,想找到:
- 活躍維護的專案(近期有更新)
- 有一定社群支持但不會太大型
- 使用 TypeScript 開發
搜尋語法:
language:typescript topic:react-native stars:100..1000 pushed:>2024-01-01 archived:false sort:updated
這個搜尋會找到:
- TypeScript 專案
- React Native 相關
- 星星數在 100-1000 之間(中型專案)
- 2024 年後有更新(活躍維護)
- 排除已封存的專案
- 按更新時間排序
情境二:尋找特定語言、特定授權條款、且近期有更新的專案
你正在尋找使用 Python 語言撰寫,使用 MIT 授權條款, 且最近一個月內有更新的開源專案,希望用於機器學習相關的研究。
language:python license:mit pushed:>2023-10-27 topic:machine-learning