GitHub 是程序员必备的代码开源平台。我们可以在 GitHub 上搜索和阅读项目代码,进行学习;或者复制粘贴,从而快速完成自己的项目。
相信绝大多数同学都用过 GitHub。但是,很多同学仅仅是局限于 “能用”,GitHub 的几个隐藏的神级技巧,大家都知道么?
今天给大家分享 5 个 隐藏的 、实用的 GitHub 技巧。
搜索无疑是大家使用最多的功能,绝大多数同学是这样搜索的:
点下搜索框,输入想搜的内容,然后往往会看到一大堆搜索结果,接下来还要再去选择编程语言来过滤。结果还是一大堆!不仅麻烦,而且搜索出来的内容可能非常老旧。
而有经验的大佬呢,可能是这么搜的:
按快捷键 s 直接聚焦到搜索框,然后输入一串神秘代码:springboot vue stars:>1000 pushed:>2022-05-02 language:Java ,再按回车搜索,就能轻松快速地得到精确的、最新的结果。
怎么样,搜出来的项目是不是都挺经典的?
这一串神秘代码呢,其实是利用了 GitHub 高级搜索功能提供的 搜索限定符 。
当然,完全不用记这些,进入 advance search 界面(搜索结果页左下角),利用可视化表单也能实现高级搜索:
比如搜索最近更新的、Java 语言的、star 数超过 1000 的项目:
但这个界面展示的搜索条件有限,其实还有更多的搜索限定语法,比如按代码库名称、描述搜索,对仓库中的内容进行搜索等,这些都可以在 GitHub 官方文档查阅,不用去背!
官方文档https://docs.github.com/cn/search-github/getting-started-with-searching-on-github/about-searching-on-github
2. 文件查看技巧
在我们发现开源项目后,往往要进入项目详情页,通过查看文件和阅读源码来了解项目。
相信大多数同学是一级一级地点击项目目录去找文件,发现位置错了以后呢,还要回到最初的起点,呆呆地再换一个目录去找。对于 java 这种包路径层层嵌套的项目来说,实在是太麻烦了。
其实,我们只需按下 t
键,就可以快速、实时地对仓库内的所有文件进行搜索了。
点进某个文件后,还有技巧,按下 L 键,就可以快速跳转到某一行。点击行号,就可以快速复制这行的代码,生成永久链接。
按 b 键还可以快速查看该文件的改动记录。是不是方便很多了呢?
除了上面这些,其实 GitHub 里还隐藏了非常多的快捷键,大家可以收藏一下,也可以在官方文档查看。
官方文档:
https://docs.github.com/cn/get-started/using-github/keyboard-shortcuts 除了快捷键,GitHub 其实还藏着一个命令面板,按 ctrl + k 打开,然后就可以快速查看内容,高效执行各种操作了,感兴趣的同学依然可以从官方文档去了解,这里不再赘述。
3. 阅读代码技巧
虽然通过上个技巧,我们已经能够很方便地搜索文件了,但是如果要完整阅读项目代码,可能要在文件间来回跳转,就非常麻烦。所以我们往往会把项目代码下载到本地,用更强大的编辑器来阅读。
但是,在我们调研和选择项目时,有那么多我们不了解的项目,难道都要一个个下载到本地去阅读么?
当然不用!
登录 GitHub 后,直接在仓库详情页按下 。(句号)键,神奇的事情发生了,你会发现,代码竟然直接在一个 网页版 VS Code 编辑器中打开了!
使用体验和本地的 VS Code 编辑器完全一致,不仅可以随时切换文件来阅读,代码高亮提示、快捷跳转、代码搜索、debug 等功能一应俱全,甚至还可以安装插件来增强编辑器的功能。谁用谁真香~
4. 在线运行项目
除了一键在浏览器中查看项目源码外,GitHub 还藏着一个更 无敌 的功能。
让我们在项目地址前加上 gitpod.io/# 前缀,等待几秒钟,神奇的事情发生了。
依托于 GitPod,我们不仅在一个网页编辑器中打开了项目代码、可以实时编辑和保存;而且它自动识别了项目的类型,并且自动安装了依赖包。
接下来,我们完全可以把这个网页提供的远程服务器当做自己的电脑来使用,里面预装了 python、java、go 等等,啥环境都有!因此我们可以在控制台里为所欲为:可以输入命令来执行项目,并且直接在网页中查看项目的运行效果;甚至还可以一键构建 Docker 镜像,快得飞起!
这下再也不用把项目下载到本地,然后安装一堆环境来查看项目效果了。
没记错的话,GitPod 每月提供 50 个小时的免费使用时长,对绝大多数同学来说完全足够了。
5. 项目推送
除了主动搜索项目外,其实在 GitHub 的 Explorer 探索页面中,有一个非常不起眼的按钮 —— 获取邮件更新。
我们可以根据自己的喜好,让 GitHub 定期给我们推送自己感兴趣的优质项目,就可以持续扩大知识面、了解开源动态啦。