你真的会使用Github吗?

27

快捷键

  • r快速引用
    你可以选中别人的评论文字,然后按r,这些内容会以引用的形式被复制在文本框中:

image

  • t:搜索文件

  • s:光标定位到搜索窗口

  • w:选择分支

  • g n Go to Notifications

  • g d Go to Dashboard

  • g c Go to Code

  • g i Go to Issues

  • g p Go to Pull Requests

  • g w Go to Wiki

  • ?:
    如果要查看所有的快捷键,可以在键盘上按下 ?

image

watch vs Star vs Fork

watch

watch翻译过来可以称之为观察,点击watch可以看到如下的列表。

image

默认每一个用户都是处于Not watching的状态,当你选择Watching,表示你以后会关注这个项目的所有动态,以后只要这个项目发生变动,如被别人提交了pull request、被别人发起了issue或者issue里面有新的讨论等等情况,

你都会在自己的个人通知中心,收到一条通知消息,如果你设置了个人邮箱,那么你的邮箱也可能收到相应的邮件。

所以,watch要谨慎使用,不然你的邮箱会被垃圾邮件占满。

image

如果你不想接受这些通知,那么点击 Not Watching 即可。

另外这里有一篇文章讲 如何正确接收 GitHub 的消息邮件,很不错的一篇文章,推荐大家看看。

star

star 翻译过来应该是星星,但是这个翻译没任何具体意义,这里解释为关注或者点赞更合适,当你点击 star,表示你喜欢这个项目或者通俗点,可以把他理解成朋友圈的点赞吧,表示对这个项目的支持。

不过相比朋友圈的点赞,github 里面会有一个列表,专门收集了你所有 star 过的项目,

点击 github 个人头像,可以看到 your star的条目,点击就可以查看你 star 过的所有项目了。如下图

image

不过,在你的 star 列表很容易出现这样的问题。就是你可能 star 成百上千个项目怎么办。

这时,如果 github 可以提供一个分类功能该多好,就像微博网页版的收藏,你在收藏的时候可以设置 tag,

这样设置的好处是,以后再次查找项目时,可以根据归类查找,但是不知道 github 的产品经理是怎么想的,

fork

当选择 fork,相当于你自己有了一份原项目的拷贝,当然这个拷贝只是针对当时的项目文件,如果后续原项目文件发生改变,你必须通过其他的方式去同步。

一般来说,我们不需要使用 fork 这个功能,至少我一般不会用,除非有一些项目,可能存在 bug 或者可以继续优化的地方,你想帮助原项目作者去完善这个项目

,那么你可以 fork 一份项目下来,然后自己对这个项目进行修改完善,当你觉得项目没问题了,你就可以尝试发起 pull request给原项目作者了,

然后就静静等待他的 merge。

我看到很多人错误的在使用 fork。很多人把 fork 当成了收藏一样的功能,包括一开始使用 github 的我,每次看到一个好的项目就先 fork,

因为这样,就可以我的 repository(仓库)列表下查看 fork 的项目了。其实你完全可以使用 star 来达到这个目的。

搜索

指定搜索范围

  • octocat in:file 搜索文件中有octocat的代码

  • octocat in:path 搜索路径中有octocat的代码

  • octocat in:file,path 搜索路径中有octocat的代码或者文件中有octocat的代码

  • display language:sass 搜索用scss写的包含display的代码

  • Integer 搜索包含Integer的字段 搜索mozilla用户下用markdown写的代码

通过语言搜索代码

  • element language:xml size:100 搜索大小为100字节的xml代码

  • user:mozilla language:markdown 搜索mozilla用户下用markdown写的代码

通过fork的数量或者是否有父节点的方式搜索

  • android language:java fork:true 搜索用java写的 android相关的代码并且被fork过

  • function size:>10000 language:python 搜索与function相关的python代码,文件大小超过10kb

按照目录结构搜索

  • console path:app/public language:javascript 在app/public directory目录下搜索console关键字

  • form path:cgi-bin language:perl 搜索cgi-bin目录下包含form的perl代码

通过文件名搜索

  • filename:.vimrc commands 搜索 文件名匹配.vimrc 并且包含commands的代码

  • minitest filename:test_helper path:test language:ruby 在test目录中搜索包含minitest且文件名匹配"test_helper"的ruby代码

根据扩展名来搜索代码

  • form path:cgi-bin extension:pm 搜索cgi-bin目录下以pm为扩展名的代码

  • icon size:>200000 extension:css 搜索超过200kb包含icon的css代码

通过用户或者组织来查找

  • user:github extension:rb 查找github用户中以rb为扩展的代码

  • repo:mozilla/shumway extension:as搜索mozilla的shumway以as为扩展的代码

根据star数搜索

  • react starts:>300搜索react相关的,且star数量大于300的项目

搜索结果可以根据需要排序网站上提供了排序的选项,更多搜索需求可以选择高级搜索。

发现优秀项目

关注大牛

GitHub 主页有一个类似微博的时间线功能,所有你关注的人的动作,比如 star、fork 了某个项目都会出现在你的时间线上,这种方式适合我这种比较懒的人,不用主动去找项目,而这种基本是我每天获取信息的一个很重要的方式。
image

Trending

点击下图的 Explore 菜单到“发现”页面,

image

这个 Trending 页面是干嘛的呢?直译过来就是趋势的意思,就是说这个页面你可以看到最近一些热门的开源项目,这个页面可以算是很多人主动获取一些开源项目最好的途径,可以选择「当天热门」、「一周之内热门」和「一月之内热门」来查看,并且还可以分语言类来查看。
image

awesome

GitHub 上有各种 awesome 系列,简单来说就是这个系列搜罗整理了 GitHub 上各领域的资源大汇总,比如有 awesome-android, awesome-ios, awesome-java, awesome-python 等等等,就不截图了,你们自行去感受。

Trending repositories on GitHub today

浩如烟海的库中,如何知道哪些语言有哪些优秀的库,有哪些优秀的开发者,github官方贴心出品,这里Trending repositories on GitHub today · GitHub 并且一天固定时间更新一波,
image

url后缀

不比较空白字符

在任意 diff 页面的 UR L后加上 ?w=1,可以去掉那些只是空白字符的改动,使你能更专注于代码改动。

Diff without whitespace

详见 GitHub secrets.

调整 Tab 字符所代表的空格数

在 diff 或文件的 URL 后面加上 ?ts=4 ,这样当显示 tab 字符的长度时就会是 4 个空格的长度,不再是默认的 8 个空格。 ts 后面的数字还可以根据你个人的偏好进行修改。这个技巧不适用于 Gists,或者以 Raw 格式查看文件, 但有浏览器扩展插件可以帮你自动调整: Chrome 扩展Opera 扩展

下面以一个 Go 语言源文件为例,看看在 URL 里添加 ?ts=4 参数的效果。添加前:

Before, tab space example

... 添加后的样子:

After, tab space example

查看用户的全部 Commit 历史

在 Commits 页面 URL 后加上 ?author={user} 查看用户全部的提交。

https://github.com/rails/rails/commits/master?author=dhh

DHH commit history

深入了解提交视图之间的区别

仓库克隆

当克隆仓库时可以不要那个.git后缀。

$ git clone https://github.com/tiimgreen/github-cheat-sheet

更多对 Git clone 命令的介绍.

分支

将某个分支与其他所有分支进行对比

当你查看某个仓库的分支(Branches)页面(紧挨着 Commits 链接)时

https://github.com/{user}/{repo}/branches

你会看到一个包含所有未合并的分支的列表。

在这里你可以访问分支比较页面或删除某个分支。

Compare branches not merged into master in rails/rails repo - https://github.com/rails/rails/branches

比较分支

如果要在 GitHub 上直接比较两个分支,可以使用如下形式的 URL :

https://github.com/{user}/{repo}/compare/{range}

其中 {range} = master...4-1-stable

例如:

https://github.com/rails/rails/compare/master...4-1-stable

Rails branch compare example

{range} 参数还可以使用下面的形式:

https://github.com/rails/rails/compare/master@{1.day.ago}...master
https://github.com/rails/rails/compare/master@{2014-10-04}...master

日期格式 YYYY-MM-DD

Another compare example

diffpatch 页面里也可以比较分支:

https://github.com/rails/rails/compare/master...4-1-stable.diff
https://github.com/rails/rails/compare/master...4-1-stable.patch

了解更多关于基于时间的 Commit 比较.

参考文章

GitHub秘籍
github代码搜索技巧


如果觉得我的文章对你有用,请随意赞赏

你可能感兴趣的

Panda · 2017-03-30

奇技淫巧 ??

回复

枫s的思念 · 2017-03-31

这个很可以,赞一个?

回复

0

赞一个!

岸遥 · 3月14日
0

枫s的思念是在北京小米还是南京呀?

岸遥 · 3月14日
苏生不惑 · 2017-09-17

react starts:>300搜索react相关的,且star数量大于300的项目 react stars:>300

回复

Sadhu · 5月15日

您好作者,请问有些图片是不是挂了? 比如Trending 和 关注大牛 那里的图片

回复

载入中...