数学建模社区-数学中国

标题: 73个GitHub高级搜索技巧 [打印本页]

作者: 杨利霞    时间: 2021-7-8 14:57
标题: 73个GitHub高级搜索技巧
# R' W% t! C5 o. c/ w8 E
73个GitHub高级搜索技巧
3 }  [( D- K! Z9 W73个GitHub高级搜索技巧  O7 P2 P1 i0 X5 \
1. 前言! r( }; K* |6 q) ]& z) v7 R
2. 排序搜索结果
0 r; Y" H' e" O2.1. 按交互排序) U# ^# z$ O3 O/ l  I: ]
2.2. 按反应排序, ?9 a2 g+ Z+ k: R& p  C8 J
2.3. 按作者日期排序  o; A1 z* Q2 [
2.4. 按提交者日期排序
/ J% f: a. E) V$ i0 y, q$ C, y- l2.5. 按更新日期排序
" g$ M( L1 R+ J3. 搜索范围  b7 h6 f+ S4 j
3.1. 搜索存储库1 ~6 t& Z$ S+ ^" M  v# T. i9 R
3.1.1. 按存储库名称、描述或 README 文件的内容搜索* ?0 W! g# S  C; R: b/ i( M2 l2 l
3.1.2. 在用户或组织的仓库中搜索
& B9 |3 b: F- A+ G. {, {! a3.1.3. 按存储库大小搜索
. z" d' D! b" n/ ~4 y2 ^7 e3.1.4. 按分叉数搜索
" y: e# G1 D- C% k8 r7 X, U3.1.5. 按星数搜索( B5 X( H2 m! G1 C9 s
3.1.6. 按创建或上次更新存储库的时间搜索
9 }" ~5 a- }- _9 J8 X) H  B0 R3.1.7. 按语言搜索+ v, c8 v* p, n
3.1.8. 按主题搜索, _5 Z, |% x: o7 f+ l" h
3.1.9. 按主题数量搜索
9 a% c: I# s! ]7 [! I; N5 j0 W3.1.10. 按许可证搜索
& j1 Y1 D, H/ d" z3.1.11. 按存储库可见性搜索+ G% E) U% \1 l9 c  R% }
3.1.12. 根据仓库是否是镜像进行搜索( g/ V' H  s! R' r5 g9 o5 j1 Z% H
3.2. 搜索主题2 g4 [3 U  t. q
3.2.1. 使用搜索限定符缩小搜索范围
/ }+ t0 `. k7 `$ j; a: o3.3. 搜索代码
$ ^8 s% f" W% a- X: e4 y3.3.1. 按文件内容或文件路径搜索+ u! M2 g& A' ^: w$ K
3.3.2. 在用户或组织的仓库中搜索# ^( n  z7 }4 \8 d" w& u5 Y
3.3.3. 按语言搜索
; k) W; `2 f0 R4 G3.3.4. 按文件大小搜索3 Z8 A) |- E# p: K% m
3.3.5. 按文件名搜索
8 p2 |, |* l- w  U2 X3.4. 搜索用户9 _) f( j; P% q+ a4 C5 j. F/ t
3.4.1. 按帐户名称、全名或公共电子邮件搜索8 s3 J; V* o4 Z+ o5 i
3.4.2. 按用户拥有的仓库数量搜索4 ]# u. n+ l) P
3.4.3. 按创建用户帐户的时间搜索
" w+ [, t$ }: V, B, M1 f3.4.4. 按关注者数量搜索
, ^, V8 A( v8 K8 ^% o1. 前言2 v8 C1 ~" W9 ]1 O6 ?9 Y
GitHub的搜索功能绝不仅仅是单纯匹配你输入的内容,而是有如下匹配规则。4 K+ E5 b  h/ |

3 i7 U. q" ^4 ~( j9 d
. L# w) ^6 z& c% [6 k; k5 }
本文参考自GitHub官方文档。1 x6 y; O2 _0 T  Y5 P# ?) Z9 U) ]4 M
GitHub官方文档:https://docs.github.com/en
- F9 u- _: t) y: g3 ], r2 b
; {( }* W# v1 b5 x- e' C$ E
( Q# b+ i) A7 P4 ~, K

. p! r5 x" v" b6 s- a

0 ]2 V- U; d' w& p. o1 n本文第3点总结了目前GitHub搜索最常用的技巧,根据我们平时搜索的内容分为了搜索存储库、搜索主题、搜索代码和搜索用户四个小点,你可以根据自己想要的搜索内容定位到每个小点,同时第2点总结了将你搜索到的结果按照什么排序顺序排序,包括交互排序、反应排序、作者日期排序、提交者日期排序、更新日期排序等。* D+ @( M; `8 V2 r) l

: N1 y3 K* L- s

" X. G2 J4 p" l- n2. 排序搜索结果
" Z5 K% A5 r2 @  A  k* e2.1. 按交互排序" V3 [: q2 g( d3 ?
语法        例子
1 t# s9 P" W, W) korg:github sort:interactions        匹配 GitHub 拥有的存储库中的问题,按反应和评论的最高组合数排序$ W. h$ X( Q7 S& ^, f; V6 H
org:github sort:interactions-asc        匹配 GitHub 拥有的存储库中的问题,按最少的反应和评论组合数排序
$ d9 U# p6 r- ^2.2. 按反应排序
3 u3 g3 y* v( }2 t6 r' N" h语法        例子+ N3 ?- G- A/ F
org:github sort:reactions        匹配 GitHub 拥有的存储库中的问题,按最高反应数排序。
6 E* q2 q  g) S6 B# Zorg:github sort:reactions-asc        匹配 GitHub 拥有的存储库中的问题,按反应数量升序排序(从最少到最多). Q, c7 d0 h+ X, |' z6 P
org:github sort:reactions-+1        匹配 GitHub 拥有的存储库中的问题,按最多点赞 (👍) 反应排序
0 _+ \/ K& d" u6 U8 }org:github sort:reactions- -1        匹配 GitHub 拥有的存储库中的问题,按最多 (👎) 反应排序
4 C% w3 D  @; B* r* P& [0 forg:github sort:reactions-smile        匹配 GitHub 拥有的存储库中的问题,按最多笑 (😄) 反应排序3 h' J2 p3 R. p: C4 u7 |7 e
org:github sort:reactions-tada        匹配 GitHub 拥有的存储库中的问题,按大多数欢呼 (🎉) 反应排序& V6 Y. Y! Z8 F, x) W% |/ e
org:github sort:reactions-heart        匹配 GitHub 拥有的存储库中的问题,按大多数心脏 (❤️) 反应排序
% Y" c! U' b! ~( u2.3. 按作者日期排序
7 A/ A) l% ^6 r  k- l' n# g5 t语法        例子
& ?: s- R9 E  O: Y4 `org:github sort:author-date feature        匹配 GitHub 拥有的存储库中包含单词“feature”的提交,按作者日期降序排序
( N; |5 @. F  i' x+ worg:github sort:author-date-asc feature        匹配 GitHub 拥有的存储库中包含单词“feature”的提交,按作者日期升序排序
3 u% W8 ^6 ~. _! j! T2.4. 按提交者日期排序
2 \" u8 q9 D% ], [4 [) L7 \" _$ N1 z语法        例子
  L8 i2 B* U) V3 U7 f, b8 k. o/ Torg:github sort:committer-date        匹配 GitHub 拥有的存储库中包含“功能”一词的提交,按提交者日期降序排序. B  z( C  g/ y6 F* ~4 g
org:github sort:committer-date-asc        匹配 GitHub 拥有的存储库中包含“功能”一词的提交,按提交者日期升序排序
; j8 t3 I, l# O+ ]& Z2.5. 按更新日期排序
; p) G( a* j) n语法        例子
+ G* q  K) F9 w7 ]sort:updated feature        匹配包含“feature”一词的存储库,按最近更新日期排序% L3 y6 J" j% W3 ^3 o
sort:updated-asc feature        匹配包含单词“feature”的存储库,按最近更新日期排序
7 Y; b( W& s  M! n5 @- H3. 搜索范围! e5 Q, P3 Y% z9 z6 A3 y
3.1. 搜索存储库
7 X! W: d6 ^( y0 e. e- J3.1.1. 按存储库名称、描述或 README 文件的内容搜索
! T$ L5 |8 Z. _( x3 C4 t语法        例子
3 ~1 W8 N5 F1 w5 S$ Oin:name jquery        匹配存储库名称中带有“jquery”的存储库。+ K, Y! I! H. B& B$ Z
in:description jquery        匹配存储库描述中带有“jquery”的存储库。
1 h# b* }8 Y4 b( jin:readme jquery        匹配存储库的 README 文件中提到“jquery”的存储库。
3 Z1 \* Q3 e- b- ]2 e3.1.2. 在用户或组织的仓库中搜索
5 _  E2 B, X2 W4 X语法        例子
7 b  S. C" {( u% X% Xuser:defunkt forks:>100        匹配用户名为 defunkt 的具有超过 100 个 fork 的存储库。
" D1 u9 A1 l) r- F5 u# F2 c3.1.3. 按存储库大小搜索6 z0 ^- S1 A3 b. {( L( @% G  ^
语法        例子4 G- n( F$ K: D; \0 X
size:1000        匹配大小为 1 MB 的存储库/ x9 }- u' q* G& }" O
size:>=30000        匹配至少 30 MB 的存储库! ^- I) J$ G8 O5 {2 ]$ s& N' s
size:<50        匹配小于 50 KB 的存储库
- U+ b# S  s- {size:50…120        匹配 50 KB 到 120 KB 之间的存储库' A0 y7 T! P2 r; j1 S2 ^7 u
3.1.4. 按分叉数搜索
1 P) s8 i: J0 ?( o语法        例子
0 Z" `" z, H7 ~1 e+ c. tforks:5        匹配只有五个 fork 的存储库
9 Q) @) F" U! zforks:>=205        匹配至少有 205 个 fork 的仓库
2 ?% O- w2 B3 z  hforks:<90        匹配具有少于 90 个 fork 的存储库6 _+ `2 @+ v+ R  u! R* b1 w, K
forks:10…20        匹配具有 10 到 20 个 fork 的存储库- h4 w. t  z' b6 v& B6 B
3.1.5. 按星数搜索0 U" j, ]5 a% k/ m; d! q6 z
语法        例子
$ Z+ z- I2 O+ {2 U" @7 H* estars:500        匹配恰好有 500 颗星的存储库( s: I6 G# m( R
stars:10…20        匹配小于 1000 KB 的 10 到 20 星的存储库
- `6 l+ K3 P- K! i5 Vstars:>=500 fork:true language:php        匹配至少 500 个星的存储库,包括分叉的,用 PHP 编写的6 p  s& b- h' `0 h8 y
3.1.6. 按创建或上次更新存储库的时间搜索+ p& A1 u. o1 J& @& l* X, T
语法        例子. o) J' f% s, K2 a2 ^1 d+ u
webos created:<2011-01-01        匹配 2011 年之前创建的带有“webos”一词的存储库
; {8 h- |% s' J1 z3 u, F& b; ecss push:>2013-02-01        匹配 2013 年 1 月之后推送到的带有“css”一词的存储库
, R  H1 c# U& I0 g3 ?/ fcase push:>=2013-03-06 forknly        匹配 2013 年 3 月 6 日或之后推送到的带有单词“case”的存储库,并且是分叉。3 `3 u, u: L6 T, p
3.1.7. 按语言搜索
0 D6 w; n  E$ i- a' }% V语法        例子1 N8 m: ]* Y5 Y5 t: {0 Z; v* x
rails language:javascript        匹配使用 JavaScript 编写的带有“rails”一词的存储库
( u$ h8 C1 [4 N7 H6 n$ l. {3.1.8. 按主题搜索$ o2 Y7 u; |3 Z5 w
语法        例子
! b6 D# P( o  s+ @4 m5 ttopic:jekyll        匹配已分类为主题“jekyll”的存储库7 f# ]6 r8 y& `
3.1.9. 按主题数量搜索
4 `* a; Y7 V7 j: P6 ~/ Y: ~7 A语法        例子& r- }4 V3 J# U, c# W- a
topic:5        匹配具有五个主题的存储库& ^2 _" X  ]7 ]" v. G/ C
topic:> 3        匹配具有三个以上主题的存储库4 W% `9 @2 k9 t) j; |
3.1.10. 按许可证搜索
. l3 w- _* u, {9 I* B2 l" q' C语法        例子* f; m: ^, F% ^; T3 h+ @
license:apache-2.0        匹配在 Apache License 2.0 下获得许可的存储库6 X2 `. w* K1 r: Q% L: |; ?+ o8 t
3.1.11. 按存储库可见性搜索/ O5 S+ ~8 v  `, [8 d
语法        例子
2 X' A+ g$ C, {$ v" V" O6 v% `is:public org:github        匹配 GitHub 拥有的公共存储库, ~/ K9 y8 D; `
is:internal test        匹配您可以访问并包含“test”一词的内部存储库& p$ @; M# z4 [8 Q8 A4 U
is:private pages        匹配您可以访问并包含“pages”一词的私有存储库
9 D' G1 C6 X, m: z3 y3.1.12. 根据仓库是否是镜像进行搜索
' y8 S, c- c! w% j语法        例子1 e" ^3 t+ ?  n, s# d
mirror:true GNOME        匹配作为镜像且包含单词“GNOME”的存储库$ a$ s6 C% K2 S. B4 R
mirror:false GNOME        匹配非镜像且包含“GNOME”一词的存储库
2 ~5 a9 t! L3 Q! O7 {3.2. 搜索主题4 n- h( n8 n( T
3.2.1. 使用搜索限定符缩小搜索范围
# o6 ~9 e+ J2 E3 g3 S6 R7 c$ X4 h语法        例子/ m! l: R! T4 F# H5 l5 A" M3 t
is:curated javascript        匹配经过策划并包含“javascript”一词的主题' z! n- Z: s! k9 \+ t) a
is:featured javascript        匹配https://github.com/topics/上的特色主题并包含“javascript”一词
* E) C& }# `/ y3 u9 ois:not-curated javascript        匹配没有额外信息(例如描述或徽标)并包含“javascript”一词的主题: x2 q) h) V& \+ m+ S
is:not-featured javascript        匹配https://github.com/topics/上没有特色且包含“javascript”一词的主题
+ h3 V+ Y  L, x2 N5 b5 T2 g4 vrepositories:>5000        匹配具有超过 5000 个存储库的主题9 D' a1 E$ S7 V) z. L
3.3. 搜索代码" U) Z8 k: a1 u6 L: d$ r$ |; @, ^1 m
序号        代码搜索的注意事项:由于搜索代码的复杂性,对搜索的执行方式有一些限制: u* p- h3 r8 H" e8 C$ J8 z8 H3 E0 C
1        必须登录 GitHub 上的用户帐户才能在所有公共存储库中搜索代码# k( u, p9 [/ J  K: S. G& |3 ~
2        只有当分叉的星数多于父存储库时,分叉中的代码才可搜索。星号少于父存储库的分叉不会为代码搜索编制索引。要在搜索结果中包含星数多于父级的分叉,您需要将fork:true或添加forknly到您的查询中。有关更多信息,请参阅“在分叉中搜索”  _, B  g* q4 d; p% I( Z
3        仅对默认分支进行索引以进行代码搜索
9 y# n; @/ J7 T: `3 v& y8 D4        只能搜索小于 384 KB 的文。
3 U. `# Z# S7 R# v0 j" d5        只能搜索少于 500,000 个文件的存储库# `' @$ ^% R, X5 j2 N
6        只有在去年有活动或在搜索结果中返回的存储库才可搜索" y4 ?0 u8 ~+ ~2 _- F
7        除了filename搜索之外,在搜索源代码时,您必须始终包含至少一个搜索词。例如,搜索language:javascript无效,而搜索无效amazing language:javascript
2 L* E. Y6 ]  Y# {. e4 z8        搜索结果最多可以显示来自同一个文件的两个片段,但文件中可能会有更多的结果
" j( Q5 B$ v$ o! ]% Z9        您不能在搜索查询中使用以下通配符:. , : ; / \ ` ’ " = * ! ? # $ & + ^
/ v5 g( ^& H" v! Z3.3.1. 按文件内容或文件路径搜索; Z7 X4 Y& B6 Y- p5 l( O% D/ X: o
语法        例子
$ |2 e, U' H+ s: m) M; |7 N& Coctocat in:file        匹配文件内容中出现“octocat”的代码
6 T  l% b+ i3 [+ D) i  B  @octocat in:path        匹配文件路径中出现“octocat”的代码
; K( F- o$ g) q6 S1 O8 {% O3.3.2. 在用户或组织的仓库中搜索3 E2 D4 l# X6 j3 @
语法        例子- B- T2 v' ]$ T, r' l" l
user:defunkt extension:rb        匹配来自@defunkt 的以.rb结尾的代码
2 l9 I2 j, l' i/ n9 S& B8 Korg:github extension:js        匹配来自 GitHub 的以.js结尾的代码7 s+ V: h* `; L- `/ b- q
repo:mozilla/shumway extension:as        匹配@mozilla 的 shumway 项目中以.as结尾的代码# _) f) i2 C/ R2 z0 d# J& Z
3.3.3. 按语言搜索
$ w8 A7 U' _/ ?2 a7 R4 X6 L4 s- l语法        例子& J8 F1 ^' c4 q/ W
element language:xml size:100        匹配带有标记为 XML 且正好有 100 个字节的单词“element”的代码% m4 L. r/ N/ f
display language:scss        匹配带有单词“display”的代码,它被标记为 SCSS
% h, i+ h" ~4 v8 f0 Q3 porg:mozilla language:markdown        匹配所有@mozilla 存储库中标记为 Markdown 的代码) W: F' f- \: S3 q& Q2 U3 A( i
3.3.4. 按文件大小搜索
$ m, c. J9 u& ~" ]- a, r/ a1 k语法        例子
2 D7 j$ R$ `* @7 T0 x& Jfunction size:>10000 language:python        匹配用 Python 编写的大于 10 KB 的文件中带有“function”一词的代码
( V$ E: }0 l$ T' P; \3.3.5. 按文件名搜索
1 k/ o6 V! G' W  g语法        例子
/ X: v; x/ f) [& m( L- B' _$ Afilename:linguist        匹配名为“linguist”的文件% B2 G+ z% {  M( V) T1 N6 g8 y
filename:.vimrc commands        匹配带有 “commands” 一词的.vimrc文件。
/ E0 s( g$ v" E, u* @3.4. 搜索用户7 `0 `6 V: r0 D# W% k0 O: i
3.4.1. 按帐户名称、全名或公共电子邮件搜索9 b- ~& u3 A2 R3 y
语法        例子4 x& H: q0 h+ D# E3 s# ]6 S0 @) u7 j
userctocat        匹配用户名为“octocat”的用户  s( l# X; V" @( A
org:electron type:users        匹配 Electron 组织的账户名
7 U2 @3 ~, F, @9 |kenya in:login        匹配用户名中包含“kenya”一词的用户6 Q9 x( d% M7 P' D0 c
bolton in:name        匹配真实姓名中包含单词“bolton”的用户
( d3 P0 s5 n% rfullname:Nat Friedman        匹配全名“Nat Friedman”的用户。注意:此搜索限定符对间距敏感。
8 f: ^3 d# m2 T  [" Edata in:email        将用户与电子邮件中的“data”一词匹配起来5 e: h& A4 ]7 _& ]
3.4.2. 按用户拥有的仓库数量搜索. y3 h# P" L3 k: J
语法        例子
" `! R% X4 v0 A% U- N" y- Crepos:>9000        匹配存储库数量超过 9,000 的用户
. r3 t- I. `: b8 R) n$ W7 lbert repos:10…30        匹配用户名或真实姓名中包含“bert”一词且拥有 10 到 30 个存储库的用户
% J1 y6 {: Z! r0 W+ V3.4.3. 按创建用户帐户的时间搜索0 T; V$ m! O6 m9 l! ~8 i
语法        例子
; [- c: ^. Q0 q" ?6 i" ]; ucreated:<2011-01-01        匹配 2011 年之前加入的用户/ ?- V: |$ U# k; k& x
created:>=2013-05-11        匹配在 2013 年 5 月 11 日或之后加入的用户
! t9 n* k4 ]8 P( a' A* Dcreated:2013-03-06 location:london        匹配于 2013 年 3 月 6 日加入且将其位置列为伦敦的用户
' \$ D0 g* p5 r( acreated:2010-01-01…2011-01-01 john in:login        匹配在 2010 年到 2011 年之间加入且用户名中包含单词“john”的用户
! M- t, z  P& Y6 j7 U' f# u3.4.4. 按关注者数量搜索4 Y' a; n, y: e4 R4 u) ]# s
语法        例子& ?" S6 X  k8 _7 x* a, w6 ]
followers:>=1000        匹配拥有 1,000 或更多关注者的用户
: }/ U4 p& G' |% ~" {! B( k. ^sparkle follower:1…10        匹配拥有 1 到 10 个关注者的用户,他们的名字中带有“sparkle”这个词
# L0 a# M% _# u3 C6 [, s————————————————
8 L& h5 f& D! u( G& }版权声明:本文为CSDN博主「Jack·Kwok」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。1 w, v; H: @3 z8 i- {  y
原文链接:https://blog.csdn.net/PaperJack/article/details/1185439801 Q- N" W5 M8 |; ^0 H5 G2 `$ D9 C
. n& T: u# W1 ~9 f

# n# N3 Y/ C/ q3 Z8 E* l& x
作者: 1051373629    时间: 2021-8-15 17:52
谢谢了! 谢谢了!5 W$ f/ p2 ~% S5 V





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5