目录

Github 实用技巧汇总

So, you really know Github?

高级搜索

高级搜索页面填目标关键字

这个比较简单,直接访问网址 : https://github.com/search/advanced

会看到有 Advanced options、Repositories options、Code options、Issues options、Users options以及Wiki options各类筛选条件可以选择,按照提示输入筛选条件就可以。

利用搜索关键字 filter 筛选

这个方式就是在普通搜索框指定筛选条件,相当于是上述高级搜索选项页面的命令行简化版本。

关键字与含义

通过 in 限定符,可以将搜索限制为仓库名称、仓库说明、仓库主题、readme内容的部分字符串,或者这些的任意组合。

以下只列举个人认为比较常用的搜索 仓库Issue用户 这三种情形,更详细内容请参考:GitHub官方关于Search中文文档.

  • 搜索仓库

    关键字 可选值 含义
    in:name 字符串,纯英文 名称的部分字符串
    in:description 字符串,可以有非英文 描述内容的部分字符串
    in:readme 字符串,不限中英文 Readme.md内容的部分字符串
    in:topic 字符串,纯英文. topic页面 所属主题的部分字符串,仓库类型
    stars: 具体数字或范围(50..100 或 >500) stars数量
    forks: 具体数字或范围(10..100 或 >=500) forks数量
    followers: 具体数字或范围(10..100 或 >=500) 关注者数量
    size: 具体数字或范围(10..100 或 >=500)
    单位:kB
    所有文件内存总大小
    created: YYYY-MM-DD 注意月-日都是2位数形式
    可以用 > 或 < 符号表范围
    仓库创建时间
    pushed: YYYY-MM-DD 注意月-日都是2位数形式
    可以用 > 或 < 符号表范围
    最近一次push代码时间
    language: C, C#, C++, Java,Go,Python,JavaScript, Swift, Rust,Kotlin….
    更多语言可参考GitHub高级搜索语言下拉框
    项目编程语言
    license: 请参考GitHub高级搜索License下拉框 项目遵循的证书协议
    user: 一个明确的用户名,纯英文 仓库作者
    org: 一个明确的组织,纯英文,比如google 仓库所属组织
    • 形如in:keyWord yourWords 之间有空格,冒号前后没有;
    • 形如 keyWord:数字或范围,冒号前后没有空格;
  • 搜索 Issue

    关键字 可选值 含义
    type: issue 或 pr issue,表示只搜索issue;
    pr则表示 pull request
    in:title 字符串,纯英文 标题包含的字符串
    in:comments 字符串,不限中英文 评论中包含的字符串
    state: open 或 closed 开放/关闭的状态
    comments: 具体数字或范围(10..100 或 >=500) 评论数量
    reactions: 具体数字或范围(10..100 或 >=500) 反应的数量
    interactions: 具体数字或范围(10..100 或 >=500) 反应和评论的数量
    created: YYYY-MM-DD 注意月-日都是2位数形式
    可以用 > 或 < 符号表范围
    Issue开放时间
    updated: YYYY-MM-DD 注意月-日都是2位数形式
    可以用 > 或 < 符号表范围
    Issue更新时间
  • 搜索用户

    关键字 可选值 含义
    type: user 或 org 个人用户或组织
    user:name 字符串,纯英文 精确用户名
    org:name 字符串,纯英文 精确组织名
    in:name 字符串,纯英文 真实姓名包包含内容
    repos: 具体数字或范围(10..100 或 >=500) 仓库数量
    location: 字符串,纯英文 用户所处地名,国家或城市
    followers: 具体数字或范围(10..100 或 >=500) 关注者数量
    created: YYYY-MM-DD 注意月-日都是2位数形式
    可以用 > 或 < 符号表范围
    Github账户注册时间

实例展示

下面举几个实用的例子:

  • 指定 stars 不少于 2k 的且项目描述包含 “image” 的 C++ 项目:可以在普通搜索框输入 stars:>=2000 language:c++ in:description image

  • 指定仓库名包含 “log” 且 readme 中包含 “thread” 、stars数多于2k,以及最新更新时间大于 2022-01-01的活跃项目:可以在普通搜索框输入 in:name log in:readme thread pushed:>2022-01-01 stars:>2000

    很明显,我们打算找一个靠谱且活跃的考虑线程安全的 log 库,即使如此,还是搜到了525个仓库,可以按照需求继续缩小范围;

    输入细节⚠️

    • 冒号之后不要加空格,应该紧跟条件;(比如in:name之间不要加空格)

    • 如果你的意向词条本身有空格,那就加上双引号;

      比如上面的 log 库搜索我还希望它性能好(至少作者自己这么觉得),那就在readme里新增 “very fast”,多个词条用空格隔开就可以,可以发现结果已经只有40个仓库了

      1
      
      in:name log in:readme thread  "very fast" stars:>2000  pushed:>2020-01-01
      
    • 对于日期的格式,严格按照格式,上述日期就不能写成 “2020-1-1”,会导致搜索结果为空;

    • 对于某些词条只知道一部分,就用 in: ,就可以让Github理解,这是一部分而不是精确指定这个关键字的值;

    • 多个相同的 in 可以合并;

      以下2句等效,都是指搜索 仓库名或者 readme 中包含"thread"关键字的仓库(结果按照stars数排序): in:name thread in:readme thread sort:starsin:name,readme thread sort:stars

  • 指定 readme 中包含 “java” 和 “面试"关键字,且stars数和forks数都大于2000:可以搜索 in:readme 面试 java stars:>2000 forks:>2000 language:java ,可以发现找到了 21 个精品仓库,能让准备面试的朋友如获至宝;

  • 指定话题为 “algorithm” 且 stars 数大于 5000 、在2019年1月1日后建立的仓库:就可以执行topic:algorithm stars:>2000 created:>2019-01-01,目前是找到了14个仓库,都是精品算法刷题仓库。

    关于Github话题 Topic,可以点击 Github 主页的 Explore 看到 Topic 选项;或直接访问 https://github.com/topics 就可以看到热门Topic了。

  • 如何找人呢?

    1. 如果已知大佬的用户名,例如 Linux 巨佬 Linus Torvalds,他Github用户名是 torvalds,可以直接搜索 user:torvalds,就可以看到到唯一的用户以及其所有仓库列表。(大佬有162k 的 follower,啊🧎)

    2. 如果用户名不清楚,可以用条件限定搜一搜大佬: 比如用location:china followers:>2000 language:c++ 就搜索到了Github上 Follower 数大于2000的国内C++开发者。

      目前看到是有 8 位,前三位就是腾讯图形学大佬Milo Yip游戏与算法大佬liuyuboTaichi语言创始人胡渊鸣,靠谱!

awesome 一下

在 Github 这是个很神奇的词,有很多很牛的仓库都带有这个词,所以不论你想搜什么,有时不妨加这个词试一试。

比如想找一下很牛的 python 宝藏仓库,可以搜索 awesome python stars:>5000,可以找到 20 多个 Python 宝藏仓库。

便捷在线浏览代码

Github-Dev

Github推出的在线编辑代码的一个项目,解决痛点每次看个新仓库都得先clone下来,因为网页在线点来点去跳转实在太慢了 ”。

具体使用方法是:在任意一个仓库页面,只需要 敲击一下半角句号 . 就可以跳转到web版 VSCode 打开该仓库(半角句号是指英文输入状态时的句号)。可以阅读,编辑,甚至可以提交代码,目前不足之处是跳转还不够快,而且有些插件受限制。

该功能是由这个开源项目 github/dev 支撑的。

Github1s

和上述的 Github-Dev是类似的,也是在线打开 VSCode 查看代码,由项目 conwnet/github1s

操作方法:修改任意一个 github 仓库的地址栏,在 github.com 中加 “1s”,变成 “github1s.com” ,然后 Enter ,就会打开一个 Web 版的 VSCode,还有个缺点是代码是 Readonly 不可编辑。

此方法作为 Github-Dev 的备用。

Github加速clone或访问

Dev-SideCar 和 Github 镜像站不冲突,可以单独使用,也可以都使用,不冲突。

Dev-SideCar

开发者边车工具,可以用来加速 git-clone 以及 npm,具体使用方法不赘述。可以参考:Github:Dev-Side-CarGitee:Dev-SideCar

Github镜像站

举个例子,对于仓库 https://github.com/gabime/spdlog.git 来说,可能大部分直接就是执行 git clone了,可能发现下载速度非常慢。

以下方法都是在不修改 hosts 的情况下,尽量解决没有梯子带来的Github Clone或访问慢的问题。可以任选一个使用。

  • fastgit

    网址全名是:https://hub.fastgit.xyz/ ,官方文档参考 fastgit.org中文文档

    该网站以前是 fastgit.org,后来就因为某些众所周知的原因无法使用了,改成了 fastgit.xyz。

    1. 用法1:网址替换,替换网址中 github.com 这部分,上述仓库网址换成 https://hub.fastgit.xyz/gabime/spdlog.git

      如果想每次 clone 仍然执行原网址,不手动改地址,还可以把这个设置全局应用,只需要终端执行:

      1
      2
      
      git config --global url."https://hub.fastgit.xyz/".insteadOf "https://github.com/"
      git config protocol.https.allow always
      
    2. 用法2:有辅助工具 fgit,不做赘述,直接看 fgit 文档

  • gitclone.com

    网址全名是: https://gitclone.com/

    这个替换域名的方式为加 gitclone.com 的前缀:

    1
    
    https://gitclone.com/github.com/gabime/spdlog.git
    

    如果想每次 clone 仍然执行原网址,不手动改地址,可以同样做全局设置,只需要终端执行:

    1
    
    git config --global url."https://gitclone.com/".insteadOf "https://"
    

其他资料