你真的会使用Github吗?

快捷键

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

image

  • t:搜索文件css

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

  • w:选择分支python

  • g n Go to Notificationsreact

  • g d Go to Dashboardandroid

  • g c Go to Codeios

  • g i Go to Issuesgit

  • g p Go to Pull Requestsgithub

  • g w Go to Wikiweb

  • ?:
    若是要查看全部的快捷键,能够在键盘上按下 ?

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代码搜索技巧

相关文章
相关标签/搜索