Github 备忘清单

Github.com 上 80 个键盘快捷键和一些搜索技巧的备忘清单

键盘快捷键

站点范围的快捷方式

快捷键说明
S聚焦搜索栏
G N转到您的通知
H打开并关注用户、问题或拉取请求悬浮卡
Esc当专注于上面时,关闭 hovercard

资料库

快捷键说明
G C转到 Code 选项卡
G I转到 Issues 选项卡
G P转到拉取请求选项卡
G B转到 Projects 选项卡
G W转到 Wiki 选项卡

源码浏览

快捷键说明
T激活文件查找器
L跳转到代码中的一行
W切换到新的分支或标签
Y将 URL 扩展为其规范形式
I显示或隐藏对差异的评论
B打开责备视图

源代码编辑

快捷键说明
Ctrl F开始在文件编辑器中搜索
Ctrl G找下一个
Ctrl Shift G查找上一个
Ctrl Shift F代替
Ctrl Shift R全部替换
Alt G跳转到行
Ctrl Z撤消
Ctrl Y重做

注释

快捷键说明
Ctrl B为粗体文本插入 Markdown 格式
Ctrl I插入斜体文本的 Markdown 格式
Ctrl K插入 Markdown 格式以创建链接
Ctrl Shift P在编写和预览评论选项卡之间切换
Ctrl Enter提交评论
Ctrl .打开已保存的回复菜单,然后使用已保存的回复自动填充评论字段
Ctrl G插入一个建议
R在回复中引用所选文字

项目板

快捷键说明
Enter/Space开始移动焦点列
Esc取消正在进行的移动
Enter完成正在进行的移动
Left/H向左移动列
Ctrl Left/H将列移动到最左边的位置
Right/L向右移动列
Ctrl Right/L将列移动到最右边的位置
Enter/Space开始移动聚焦卡
Esc取消正在进行的移动
Enter完成正在进行的移动
Down/J向下移动卡片
Ctrl Down/J将卡片移动到列的底部
Up/K向上移动卡片
Ctrl Up/K将卡片移动到列的顶部
Left/H将卡片移动到左侧列的底部
Shift Left/H将卡片移动到左侧列的顶部
Ctrl Left/H将卡片移动到最左边一列的底部
Ctrl Shift Left/H将卡片移至最左侧列的顶部
Right将卡片移动到右侧列的底部
Shift Right/L将卡片移动到右侧列的顶部
Ctrl Right/L将卡片移动到最右侧列的底部
Ctrl Shift Right/L将卡片移至最右侧列的顶部

问题和拉取请求列表

快捷键说明
C创建问题
Ctrl /将光标聚焦在问题或拉取请求搜索栏上
U按作者过滤
L按标签过滤或编辑标签
M按里程碑过滤或编辑里程碑
A按受让人过滤或编辑受让人
O打开问题

问题和拉取请求

快捷键说明
Q请求审稿人
M设定一个里程碑
L应用标签
A设置受让人

通知

快捷键说明
E/L/Y标记为已读
Shift M静音线程

拉取请求的变化

快捷键说明
C打开拉取请求中的提交列表
T打开拉取请求中已更改文件的列表
J在列表中向下移动选择
K在列表中向上移动选择
Ctrl Shift Enter在拉取请求差异上添加单个评论
Alt (click)在拉取请求中折叠和展开所有过时的审阅评论之间切换

网络图

快捷键说明
Left/H向左滚动
Right/L向右滚动
Up/K向上滑动
Down/J向下滚动
Shift Left/H一直向左滚动
Shift Right/L一直向右滚动
Shift Up/K一直向上滚动
Shift Down/J一直向下滚动

搜索技巧

范围搜索

:----
org:rails language:ruby指定组织 rails 和编程语言 ruby
repo:torvalds/linux io_uring指定仓库 torvalds/linux 搜索 io_uring
owner:tpope path:*.vim指定拥有者 tpope 和文件后缀为 *.vim
created:"> 2022-10-22" language:C#创建于 2022-10-22 以后,语言为 C# 的条件

文件路径

:----
path:__init__.py文件为 __init__.py 里面的内容搜索
path:/.*shrc$/文件路径包含 .*shrc 结尾的文件中搜索内容
path:/src/*.jssrc 目录中的 .js 后缀的文件中搜索内容
path:/(^|\/)README\.md$/使用正则,仅匹配特定文件名(而不是路径的一部分)

完全符合

:----
out of memory文本匹配 out of memory

布尔运算符

:----
io_uring (language:c OR language:cpp)语言为 c 或者 cpp 的文件中搜索 io_uring
org:kubernetes NOT repo:kubernetes/api组织为 kubernetes 排除里面的 api 仓库进行搜索

基于仓库的条件

:----
stars:100..8000 stars:>10000星星为 100 ~ 800010000 以上的
forks:50..100 forks:200 forks:<5fork 为 50 ~ 100 或者 200 或者小于 5
size:35大小为 35kb
pushed:<2022-11-23推送代码时间 2022-11-23 之前
fork:true, fork:only
license:mit基于协议 mit 条件

基于 issue 的条件

:----
state:open, state:closed关闭 / 打开issue
reason:completed"not planned", reopened, completed
label:bug标签为 bug 的条件
author:jaywcjlove作者 jaywcjlove 打开
mentions:jaywcjlove提及 jaywcjlove 用户
assignee:jaywcjlove分配给 jaywcjlove 用户
updated:<2022-11-23更新日期之前

基于用户的条件

:----
fullname:jaywcjlove全名 jaywcjlove
location:China位置 China
followers:20..50 followers:>200 followers:<2追随者
repos:0 repos:<40 repos:>5仓库数量

Symbol 限定符

搜索 go 语言中的 WithContext 符号

language:go symbol:WithContext

查询将查找在 Rust 中实现的 String 类型转换:

language:rust symbol:/^String::to_.*/

使用布尔运算

查询将匹配包含 sparseindex 的文档

sparse OR index

排除 __testing__ 目录中的文件,您可以搜索:

"fatal error" NOT path:__testing__

您可以使用括号来表达更复杂的布尔表达式

(language:ruby OR language:python) AND NOT path:"/tests/"

使用运算符 ANDORNOT 来组合搜索词

is 限定符

  • archived: 限制搜索已存档的版本库
  • fork: 限制搜索已分叉的版本库
  • vendored: 限制搜索被检测为 vendored 的内容
  • generated: 限制搜索检测为已生成的内容

示例

:----
path:/^MIT.txt$/ is:archived已归档存储库,中包含名为 MIT.txt 的文件
log4j NOT is:archived限定符 is: 可以与 NOT 运算符反转
log4j NOT is:fork从结果中排除分叉

另见