数学建模社区-数学中国

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

作者: 杨利霞    时间: 2021-7-8 14:57
标题: 73个GitHub高级搜索技巧

( c" L6 E# d, N; S& |* P6 J73个GitHub高级搜索技巧. w8 ^( a, i; v- n
73个GitHub高级搜索技巧; R7 ^/ I; N0 c! k
1. 前言
! m8 e( ]5 E3 U, E$ W  u- ^2. 排序搜索结果) o9 P* R2 F8 L! R, f3 ?5 W2 Q" g5 ]1 j
2.1. 按交互排序
) f% Q! v5 z( y  c2.2. 按反应排序) @3 A. \% G& I, C& V& u: F4 c
2.3. 按作者日期排序
& m, t6 A+ Z% Z1 |* v* I. d2.4. 按提交者日期排序0 _0 B, J' Y. U% d+ f
2.5. 按更新日期排序# }* Y$ w, A9 U9 l' B
3. 搜索范围0 p" l/ t) s( [4 r
3.1. 搜索存储库' s7 C  K" ]) J
3.1.1. 按存储库名称、描述或 README 文件的内容搜索% |1 H+ q! @2 \2 s0 D' G6 C8 f
3.1.2. 在用户或组织的仓库中搜索9 Q& l' m- {% d- x2 c* H: [! u
3.1.3. 按存储库大小搜索
# m0 w! P0 ^5 X0 r( ~' B- V$ E5 _3.1.4. 按分叉数搜索
! _4 d: _- w6 e0 @3.1.5. 按星数搜索7 X6 h8 s8 O9 o# S; a# b
3.1.6. 按创建或上次更新存储库的时间搜索3 a& T1 `" x% {5 r, J
3.1.7. 按语言搜索
/ Q9 l, A% ~" B% g. A3.1.8. 按主题搜索( J7 w' k3 l# U# a7 Y
3.1.9. 按主题数量搜索  X6 P" q" |3 ^# e
3.1.10. 按许可证搜索
* r' Y+ i* G1 |/ M2 Y& |3.1.11. 按存储库可见性搜索
! M. q2 a9 U! A3 }; K! K6 G. i! ^% T- \3.1.12. 根据仓库是否是镜像进行搜索) f. I  Z) C  J: }
3.2. 搜索主题, [+ T, ^! K; @& ]3 P# x: X' h0 A& H
3.2.1. 使用搜索限定符缩小搜索范围: k4 h- v9 N+ Y6 @( X
3.3. 搜索代码
" f% f* t6 n: P, r" Y3.3.1. 按文件内容或文件路径搜索
4 n1 w' ]9 s( `/ e( ^! h. ~' l3.3.2. 在用户或组织的仓库中搜索
- j# ^( [/ F1 I: K6 m7 x3.3.3. 按语言搜索2 Y$ @. `8 M$ k" R3 f3 M' H
3.3.4. 按文件大小搜索2 Z, z+ r/ I/ r
3.3.5. 按文件名搜索6 x/ J  e9 p* }9 m
3.4. 搜索用户
8 Q4 g- a7 W: O* a! ?- }3.4.1. 按帐户名称、全名或公共电子邮件搜索
7 M* v" P0 k: ~: P( [3 q  U7 @" J3.4.2. 按用户拥有的仓库数量搜索: c0 W3 O9 u% E  \( W" m* Y
3.4.3. 按创建用户帐户的时间搜索
7 H% ?- T" |) v4 {7 U  O2 I- V; I3.4.4. 按关注者数量搜索# t* V  \5 C$ o! W' g; q: Q
1. 前言
# P% N$ w3 B! I+ c( A5 u, W  zGitHub的搜索功能绝不仅仅是单纯匹配你输入的内容,而是有如下匹配规则。
' R1 b6 g! z: m$ s9 |! m+ u
+ u$ N, s* |! S- `1 \4 @

2 B% O: ?/ T6 ~$ F$ q8 S! _7 b本文参考自GitHub官方文档。5 y- n% {1 ^* P. W  U  @& f
GitHub官方文档:https://docs.github.com/en
: ?; |  B. G: [. ]6 N
6 z# v2 z  S* i9 j. S$ m" v6 Y

+ _8 P4 A9 r! D* d
4 s" P" y) E* y7 M2 F8 v% i4 b' ?. S
$ ]# S9 @1 Q  x
本文第3点总结了目前GitHub搜索最常用的技巧,根据我们平时搜索的内容分为了搜索存储库、搜索主题、搜索代码和搜索用户四个小点,你可以根据自己想要的搜索内容定位到每个小点,同时第2点总结了将你搜索到的结果按照什么排序顺序排序,包括交互排序、反应排序、作者日期排序、提交者日期排序、更新日期排序等。( m7 @5 P! t& a8 A- V- a

. }. l" j) A! ]

6 B" q0 R" g! r2. 排序搜索结果
/ H1 i0 m& h/ }1 M) J& j. ^2 U2.1. 按交互排序3 X. m0 H% ~  W; U3 X+ e* K
语法        例子& ?$ L, L. J# W3 J! [6 g7 E
org:github sort:interactions        匹配 GitHub 拥有的存储库中的问题,按反应和评论的最高组合数排序
& G( n/ J0 D0 e& `% r: Porg:github sort:interactions-asc        匹配 GitHub 拥有的存储库中的问题,按最少的反应和评论组合数排序
: |6 l' R5 d) y" e, G  Y: _7 V2.2. 按反应排序, B% I+ ?4 p9 i6 ?
语法        例子3 `( M: a9 a: a; c/ {( O0 a  g6 Y
org:github sort:reactions        匹配 GitHub 拥有的存储库中的问题,按最高反应数排序。+ r' Z8 F! c& Z  I
org:github sort:reactions-asc        匹配 GitHub 拥有的存储库中的问题,按反应数量升序排序(从最少到最多)5 d! w- N0 G) c/ Y; f* G# Y& V
org:github sort:reactions-+1        匹配 GitHub 拥有的存储库中的问题,按最多点赞 (👍) 反应排序
9 e0 ^4 Y* m1 Z- V1 x8 s" ]- Korg:github sort:reactions- -1        匹配 GitHub 拥有的存储库中的问题,按最多 (👎) 反应排序" y7 I+ G0 Y. A# C6 X, W# B8 @7 {* S
org:github sort:reactions-smile        匹配 GitHub 拥有的存储库中的问题,按最多笑 (😄) 反应排序
, v; ]3 ^) O) R9 P& Lorg:github sort:reactions-tada        匹配 GitHub 拥有的存储库中的问题,按大多数欢呼 (🎉) 反应排序
, ^) X6 z9 W, }2 ]org:github sort:reactions-heart        匹配 GitHub 拥有的存储库中的问题,按大多数心脏 (❤️) 反应排序; Y: S7 e. Q" |% N+ K7 o
2.3. 按作者日期排序9 m6 h0 c$ g: _" Q- c
语法        例子& C* s, `; b9 ?( h2 _
org:github sort:author-date feature        匹配 GitHub 拥有的存储库中包含单词“feature”的提交,按作者日期降序排序
1 P! B5 ^' q. @9 _) Rorg:github sort:author-date-asc feature        匹配 GitHub 拥有的存储库中包含单词“feature”的提交,按作者日期升序排序
( p( O7 S0 t7 T; K. x  e2.4. 按提交者日期排序# J  a. d1 j! b
语法        例子
4 O- u# C( s6 d/ e  Xorg:github sort:committer-date        匹配 GitHub 拥有的存储库中包含“功能”一词的提交,按提交者日期降序排序- F; h. P! L; f
org:github sort:committer-date-asc        匹配 GitHub 拥有的存储库中包含“功能”一词的提交,按提交者日期升序排序# ~# ^; N! T: o- F8 L# M1 H3 e$ \
2.5. 按更新日期排序
: L0 Y) a* w  Q# }% c" K语法        例子
. E+ S- u& W* P7 g2 u; dsort:updated feature        匹配包含“feature”一词的存储库,按最近更新日期排序
" A$ O% k1 W* usort:updated-asc feature        匹配包含单词“feature”的存储库,按最近更新日期排序" `6 |7 u% H! F$ b: Q9 A
3. 搜索范围
9 a. Q( a( n& z" P; S! x3.1. 搜索存储库3 g$ W+ h0 T. G; S. Q
3.1.1. 按存储库名称、描述或 README 文件的内容搜索/ o) O! m; U/ I! X. d
语法        例子
5 \' i4 P0 b. Oin:name jquery        匹配存储库名称中带有“jquery”的存储库。3 \9 p# k, Y/ \5 o* ?
in:description jquery        匹配存储库描述中带有“jquery”的存储库。6 A5 b0 ~6 c8 R, e; L/ C/ ~; P
in:readme jquery        匹配存储库的 README 文件中提到“jquery”的存储库。
- T$ J1 y& G2 c: j9 H3.1.2. 在用户或组织的仓库中搜索
4 [& q" w6 \. C4 [9 y  s# n8 R4 G! y语法        例子
) {! q) Z6 f$ j; R# k( h) Tuser:defunkt forks:>100        匹配用户名为 defunkt 的具有超过 100 个 fork 的存储库。
% ?& B. v9 T# \1 a$ A9 x+ [3.1.3. 按存储库大小搜索
8 `0 M" T+ R- l7 U- o/ e/ \语法        例子
1 ]* o" H6 L3 H5 o# S1 h! ?8 zsize:1000        匹配大小为 1 MB 的存储库1 G% b( l7 X" o' e3 M4 K
size:>=30000        匹配至少 30 MB 的存储库$ j/ G' o9 ~3 r9 K0 H' V
size:<50        匹配小于 50 KB 的存储库0 ]5 w' S# x! F6 v3 i. H# n
size:50…120        匹配 50 KB 到 120 KB 之间的存储库9 c6 X$ u4 F3 ]  I" H6 G
3.1.4. 按分叉数搜索
) I4 t% c* D9 @语法        例子
& h! k3 n/ c  _* F6 H$ tforks:5        匹配只有五个 fork 的存储库/ J6 T. f  a7 g/ h+ A8 n" z
forks:>=205        匹配至少有 205 个 fork 的仓库
$ ^7 N* j# P$ J6 y" b" ^: w+ Yforks:<90        匹配具有少于 90 个 fork 的存储库6 X; u, I: c' i; f
forks:10…20        匹配具有 10 到 20 个 fork 的存储库  k+ d( b3 I5 e8 n: ?
3.1.5. 按星数搜索% O6 ]- o! ?1 |: x
语法        例子
" U5 q3 F: v) x/ Z5 d1 ostars:500        匹配恰好有 500 颗星的存储库
& o- @+ T8 l7 W) X( C: P0 bstars:10…20        匹配小于 1000 KB 的 10 到 20 星的存储库9 g3 i9 T4 b+ G/ Q
stars:>=500 fork:true language:php        匹配至少 500 个星的存储库,包括分叉的,用 PHP 编写的
: R; M4 f6 ~! `9 D3.1.6. 按创建或上次更新存储库的时间搜索
% I0 ~. u2 E" q语法        例子
, r2 A$ A! Y1 y- ewebos created:<2011-01-01        匹配 2011 年之前创建的带有“webos”一词的存储库
! J9 m1 a: ]2 Q) Ncss push:>2013-02-01        匹配 2013 年 1 月之后推送到的带有“css”一词的存储库: m( w4 _' z1 q6 w
case push:>=2013-03-06 forknly        匹配 2013 年 3 月 6 日或之后推送到的带有单词“case”的存储库,并且是分叉。
* G. p" Y/ a: B8 l6 ]3.1.7. 按语言搜索3 U; g% ^4 j$ x& `! E$ V% C$ C  M# M
语法        例子
1 K4 a" E+ J# G5 d3 @/ R7 xrails language:javascript        匹配使用 JavaScript 编写的带有“rails”一词的存储库
* @4 P8 a2 @+ u# G9 [: e" e$ n3.1.8. 按主题搜索4 O! U6 t& w6 Z" e* n9 S, b+ ]" x
语法        例子. E' W2 V5 E+ P
topic:jekyll        匹配已分类为主题“jekyll”的存储库
1 G4 o( X0 H. o# s& {$ Q3.1.9. 按主题数量搜索' C; E3 t# h) X9 x
语法        例子
: J( L1 K" a3 x2 X! ]9 N9 ]topic:5        匹配具有五个主题的存储库1 y# [3 L' n9 Z4 ?: B7 {
topic:> 3        匹配具有三个以上主题的存储库% }9 K1 ^. D/ S4 J, O6 g
3.1.10. 按许可证搜索
0 i' V; z& d, ^- V# l& f' o0 j语法        例子  c* X3 a6 q$ j  ]
license:apache-2.0        匹配在 Apache License 2.0 下获得许可的存储库9 Z- b8 D" `5 N3 b# [! Z6 r& N3 _' k
3.1.11. 按存储库可见性搜索
: s# @6 ^! C; Z& w. h* u语法        例子
- I3 f5 ^$ D3 |% `is:public org:github        匹配 GitHub 拥有的公共存储库, e) F1 o+ R) P# t  l' h  c
is:internal test        匹配您可以访问并包含“test”一词的内部存储库
1 T% k# k2 b3 O, K: H/ I4 T9 \. W0 t9 Zis:private pages        匹配您可以访问并包含“pages”一词的私有存储库) z1 ~- w  o) y4 ~* A
3.1.12. 根据仓库是否是镜像进行搜索; Z, C" O0 O' M9 x$ J" E
语法        例子  ^  e: q+ D) E
mirror:true GNOME        匹配作为镜像且包含单词“GNOME”的存储库0 i6 Z# Y5 B7 H/ Z# q, n5 p! }
mirror:false GNOME        匹配非镜像且包含“GNOME”一词的存储库
& B0 ~7 H+ p/ i, O; ^# j3 q0 }8 p3.2. 搜索主题
4 g. e6 |5 L6 Y- L2 n9 _3.2.1. 使用搜索限定符缩小搜索范围9 I' D& h  W9 h. F# o/ v+ G
语法        例子1 E  A5 y  ~5 [# }. `# `  E8 |
is:curated javascript        匹配经过策划并包含“javascript”一词的主题
' b( P% X5 J/ _5 ^/ ^7 Z0 yis:featured javascript        匹配https://github.com/topics/上的特色主题并包含“javascript”一词5 ]' i- V1 u$ D7 O$ Y
is:not-curated javascript        匹配没有额外信息(例如描述或徽标)并包含“javascript”一词的主题
3 E* x/ C: u2 ^/ J# i- k+ ]is:not-featured javascript        匹配https://github.com/topics/上没有特色且包含“javascript”一词的主题
# c6 g6 K9 O% L- F+ Drepositories:>5000        匹配具有超过 5000 个存储库的主题* d+ m+ T% l" r' K2 `9 _
3.3. 搜索代码; `. z6 a; [+ |! o
序号        代码搜索的注意事项:由于搜索代码的复杂性,对搜索的执行方式有一些限制$ I2 U: B5 y! Q+ M
1        必须登录 GitHub 上的用户帐户才能在所有公共存储库中搜索代码
) d: s2 ~+ p, k- K2        只有当分叉的星数多于父存储库时,分叉中的代码才可搜索。星号少于父存储库的分叉不会为代码搜索编制索引。要在搜索结果中包含星数多于父级的分叉,您需要将fork:true或添加forknly到您的查询中。有关更多信息,请参阅“在分叉中搜索”
2 ]& U% U8 g3 v* R: ^5 |3        仅对默认分支进行索引以进行代码搜索
1 ~0 o! Z. }" f, q2 ]4        只能搜索小于 384 KB 的文。; D- Z8 @* s( C& J
5        只能搜索少于 500,000 个文件的存储库- _; Z1 R9 m5 ^
6        只有在去年有活动或在搜索结果中返回的存储库才可搜索
4 j. k' E. f) U2 S7        除了filename搜索之外,在搜索源代码时,您必须始终包含至少一个搜索词。例如,搜索language:javascript无效,而搜索无效amazing language:javascript
/ j- P! m* s0 V) y- W8        搜索结果最多可以显示来自同一个文件的两个片段,但文件中可能会有更多的结果$ b9 `9 }5 A1 {" F) U! A* ?4 H3 q7 P" |
9        您不能在搜索查询中使用以下通配符:. , : ; / \ ` ’ " = * ! ? # $ & + ^
4 _' G2 s9 r8 h& P; I3.3.1. 按文件内容或文件路径搜索: S* N" p8 V  h: E  d0 q
语法        例子
! z' d9 b4 P; T8 }% j& Loctocat in:file        匹配文件内容中出现“octocat”的代码% m( W, ]0 r$ `6 a$ a  g' c
octocat in:path        匹配文件路径中出现“octocat”的代码
# A: g! P  x) M3 f6 l7 d; d3.3.2. 在用户或组织的仓库中搜索
" A! m& p$ z3 ?; o( C2 Z+ g$ f语法        例子
' U$ _/ T& D* i7 }# Luser:defunkt extension:rb        匹配来自@defunkt 的以.rb结尾的代码- I1 a* X2 E) y/ g
org:github extension:js        匹配来自 GitHub 的以.js结尾的代码& @" ^/ h& H. [+ D. n* N2 [
repo:mozilla/shumway extension:as        匹配@mozilla 的 shumway 项目中以.as结尾的代码
9 w+ N7 [8 i5 w3 ^8 b$ }3.3.3. 按语言搜索( K- {; j+ |4 t3 }! Z) @! @
语法        例子( W. Y5 M; h. H0 _: i
element language:xml size:100        匹配带有标记为 XML 且正好有 100 个字节的单词“element”的代码6 H. a+ g+ S. u7 L9 Z
display language:scss        匹配带有单词“display”的代码,它被标记为 SCSS6 e4 q1 F$ l9 t! A. W
org:mozilla language:markdown        匹配所有@mozilla 存储库中标记为 Markdown 的代码
6 F0 i6 @# B9 b0 m, \) k- x+ w# D3.3.4. 按文件大小搜索
) J- m9 b! I; q% E: \. k, U语法        例子
0 z6 [8 b2 m0 B$ O8 Zfunction size:>10000 language:python        匹配用 Python 编写的大于 10 KB 的文件中带有“function”一词的代码: C# ?6 C5 u8 i: a3 N! l8 T
3.3.5. 按文件名搜索* ]5 ~- n) g: P; W1 Z) E
语法        例子
4 E4 m/ I, \' Z) [" f! C/ ^filename:linguist        匹配名为“linguist”的文件
* I/ q$ p  k6 R5 s) M* X  }% Z) Z5 Wfilename:.vimrc commands        匹配带有 “commands” 一词的.vimrc文件。
) x- ^6 V& Q! g8 @3.4. 搜索用户! p5 W6 Y: g$ }4 X) Y
3.4.1. 按帐户名称、全名或公共电子邮件搜索9 `5 ]7 d+ s; l9 R9 R% ?7 z
语法        例子
0 x$ Q. V* Q" f+ r1 |7 c' Vuserctocat        匹配用户名为“octocat”的用户: ^+ m8 U# x" L" _1 K+ j# B8 d
org:electron type:users        匹配 Electron 组织的账户名% w$ @; l7 P) N" d1 ]2 N2 O
kenya in:login        匹配用户名中包含“kenya”一词的用户  M4 A3 S3 r: Q# q
bolton in:name        匹配真实姓名中包含单词“bolton”的用户
0 g# W& W% b/ L! A2 efullname:Nat Friedman        匹配全名“Nat Friedman”的用户。注意:此搜索限定符对间距敏感。0 Y$ J) v, z' B8 x$ i
data in:email        将用户与电子邮件中的“data”一词匹配起来
* _) g7 c, P" M! W3.4.2. 按用户拥有的仓库数量搜索
2 ~( t" X2 m! Q/ d* e3 j( {) D5 @语法        例子
8 [/ P0 e6 w/ E$ c+ y5 nrepos:>9000        匹配存储库数量超过 9,000 的用户$ W& X# u: f" G" f) K
bert repos:10…30        匹配用户名或真实姓名中包含“bert”一词且拥有 10 到 30 个存储库的用户
# ]9 m  ~+ A+ b" X. U3.4.3. 按创建用户帐户的时间搜索8 [* O, p) P5 @
语法        例子
% N6 o0 a9 A& T6 i& b' `8 ^4 p6 K2 B! I% Zcreated:<2011-01-01        匹配 2011 年之前加入的用户9 W/ Q$ e3 J3 F0 t4 A
created:>=2013-05-11        匹配在 2013 年 5 月 11 日或之后加入的用户
5 G% H- x5 ~4 d" Dcreated:2013-03-06 location:london        匹配于 2013 年 3 月 6 日加入且将其位置列为伦敦的用户
, L3 h* W% }' S! k" {- Y6 C1 Rcreated:2010-01-01…2011-01-01 john in:login        匹配在 2010 年到 2011 年之间加入且用户名中包含单词“john”的用户, v0 y! z. j" V0 R) j0 ?
3.4.4. 按关注者数量搜索
0 S( I  o3 @7 B7 R. S  h; y语法        例子
! ^( K; v5 [# u2 s* X+ afollowers:>=1000        匹配拥有 1,000 或更多关注者的用户: B, @  `7 z) @4 t. U4 C7 K
sparkle follower:1…10        匹配拥有 1 到 10 个关注者的用户,他们的名字中带有“sparkle”这个词
, }* h8 u4 d+ U/ s( A————————————————5 R* S0 n3 O7 x! I9 }$ x$ m% E
版权声明:本文为CSDN博主「Jack·Kwok」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
$ d# r  u# Y+ R& x$ ^原文链接:https://blog.csdn.net/PaperJack/article/details/118543980
) o) r2 m* C& A5 V  t+ ]$ r! f

* D5 W# b; Q) g6 j% W( i+ q2 H
作者: 1051373629    时间: 2021-8-15 17:52
谢谢了! 谢谢了!
2 ]4 T- x, K5 s5 x7 F. o# u. F




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