Git 和 GitHub都是非常强大的工具。即使你已经使用他们很长时间,你也很有可能不知道每个细节。我整理了Git和GitHub可能提高日常效率的10个常用技巧。

GitHub

快捷键: t 和 w

在你的源码浏览页面,按t可以快速进入模糊文件名搜索模式:

在你仓库主页,按w可以快速进行分支过滤:

在任意GitHub页面中,按?展示当前页面可用的快捷键:

忽略空格: ?w=1

在任意的diff URL添加?w=1用来整理缩进:

按范围过滤提交记录: master@{time}..master

你可以创建一个对比页面通过使用URL github.com/user/repo/compare/{range}。范围(range)可以是两个SHA例如sha1…sha2或者两个分支名称例如master…my-branch。范围同时也非常智能的支持使用时间作为关注点。你可以通过master@{1.day.ago}…master过滤从昨天开始的提交。例如:链接,https://github.com/rails/rails/compare/master@{1.day.ago}…master显示Rails项目中全部昨天开始的提交记录和变化:

按作者过滤提交记录: ?author=github_handle

你可以通过在对比页面URL中增加?author=github_handle来按作者过滤提交记录。例如:链接https://github.com/dynjs/dynjs/commits/master?author=jingweno显示jingweno对Dynjs 的提交记录:

.diff 和 .patch

在比较页面、合并请求页面或者评论页面的URL后增加.diff或者.patch,可以得到diff或者patch的文本格式。例如:链接https://github.com/rails/rails/compare/master@{1.day.ago}…master.patch显示Rails项目中全部昨天开始的提交记录和变化的文本格式:

邮件回复

你可以直接在收到的GitHub通知邮件进行评论,不必在网站页面中评论。GitHub会正确的处理你的评论:

链接行

在文件展示页面,点击某行或者通过按SHIFT选择多行,URL会有相应的改变。如果你要给你的队友分享一段代码是非常方便的:

关注用户

在合并请求、问题或者任何评论中中提到用户会使用户关注全部的后续通知:

自动链接

在合并请求、问题、或者任何评论中,sha和问题码(例如:#1)会被自动链接。并且,你也可以链接其它仓库的sha或者问题码,格式:user/repo@sha1或者user/repo#1。下面是一个评论中通过sha自动链接的例子:

hub

Hub 是 GitHub的命令行。它提供了Git和Github之间的集成。一个最有用的命令就是在命令行输入hub pull-request创建pull request。详见readme.

Git

git log -p FILE

查看README.md的修改历史,例如:

1
git log -p README.md

git log -S’PATTERN’

例如,搜索修改符合stupid的历史:

1
git log -S'stupid'

git add -p

交互式的保存和取消保存变化,使用:

1
git add -p

git rm –cached FILE

这个命令只删除远程文件,例如:

1
git rm --cached database.yml

删除database.yml被保存的记录,但是不影响本地文件。这对删除已经推送过的忽略文件记录而且不影响本地文件是非常的方便的。

git log ..BRANCH

这个命令返回某个非HEAD分支的提交记录。假如你在一个功能分支,输入:

1
git log ..master

返回全部master分支的历史记录,包括未被合并到当前分支的提交记录。

git branch –merged & git branch –no-merged

这个命令返回已合并分支列表或未合并的分支列表。这个命令对合并前检查非常有用。例如,在一个功能分支,输入

1
git branch --no-merged

返回未合并到该分支的分支列表。

git branch –contains SHA

返回包含某个指定sha的分支列表。例如:

1
git branch --contains 2f8e2b

显示全部包含提交2f832b的分支。这个命令对于验证git cherry-pick完成非常有帮助。

git status -s

返回一个简单版的git status。我设置这个命令为默认git status来减少噪音。

git reflog

显示你在本地已完成的操作列表。

git shortlog -sn

显示提交记录的参与者列表。和GitHub的参与者列表相同。

Summary

Git是一个设计良好的工具。了解它可以直接让你更有效率并成为一个更有才华的程序员。GitHub,在另一个方面,在Git基础上提供便利的团队合作特性。有能力使用GitHub也会提高你日常效率。

原文:http://owenou.com/2012/01/13/ten-things-you-didnt-know-git-and-github-could-do.html

关于Git和Github你不知道的十件事的更多相关文章

  1. 转载:关于 Token,你应该知道的十件事

    关于 Token,你应该知道的十件事 原文地址:http://alvinzhu.me/blog/2014/08/26/10-things-you-should-know-about-tokens/ 原 ...

  2. 开始3D编程前需注意的十件事

    http://www.csdn.net/article/2013-06-21/2815949-3d-programming 原文作者Vasily Tserekh是名3D编程爱好者,他发表了一篇博文&l ...

  3. 拿到offer过后--大学最后时光最想做的那十件事

    昨天--2014.10.26,历史性的一刻,激动的签了欢聚时代(YY)的前端开发offer,工作地点是我喜欢的珠海(仅仅由于那边有我所向往的海还有自行车队,如今想想都乐开怀了,绕着海边骑单车的感觉真妙 ...

  4. 「译」forEach循环中你不知道的3件事

    前言 本文925字,阅读大约需要7分钟. 总括: forEach循环中你不知道的3件事. 原文地址:3 things you didn't know about the forEach loop in ...

  5. 关于 C 语言,我喜欢和讨厌的十件事

    前言:最近有个家伙抱怨道“为什么我还要再用C?”-虽然我不同意他的说法,但至少他随口提到如果你“在一台拇指大小的电脑”上编程,或者为一门语言写引导程序,那么可以用C语言.要我说,写设备驱动,或者特定平 ...

  6. 关于iOS7 设计师需要了解的十件事

    在今年的WWDC上,苹果推出了采用全新设计语言打造的iOS7.新系统弃用了诸如皮革.木质一类的伪3D拟真效果,取而代之的是更加简洁轻量的设计路线,其中文字排版成了重头戏,另外在某些方面也受到了扁平化设 ...

  7. IT技术开发人员35岁之前应该做的十件事

    第一,学会本行业所需要的一切知识并有所发展.已故零件大王布鲁丹在他35岁时,已经成为零件行业的领袖,并且组建了年收入达千万美元的海湾与西部工业公司.每个人在年轻时都可能有过彻夜不眠.刻苦攻读,这在20 ...

  8. java程序员最不愿意看到的十件事

     0.遍历结果集并构造对象如果你是个时髦的开发者而不是专业人员,显然你从某篇博客中读过有开发者遇到Hibernate的“性能问题”,因而认为ORM都不好,觉得手动编码“明显更好”.喜欢的话你当然可以用 ...

  9. HTML5须知十件事

    英文原文:10 things you should know about HTML5 一两年前,HTML5似乎还是一个模糊的概念,只有少数几个互联网的书呆子才会关心.而现在,却感觉仿佛HTML5无所不 ...

随机推荐

  1. 比较C++和C#的一个性能问题

    C++:只要你的代码正确,算法良好,你比较少关注性能问题,编译器会替你搞定绝大部分工作 C#:你的代码正确,算法良好,你还得用工具去分析优化性能,JIT为了快速工作,很多优化工作没有深入开展. 手工优 ...

  2. 重编译Linux命令源代码

    转: http://blog.csdn.net/endoresu/article/details/6967435 以su命令为例. 查看su命令的路径: # which su /bin/su 查看su ...

  3. java轻量级Http Server

    lighttpd 官方主页:www.lighttpd.netLighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全.快速.兼容性好并且灵活的web server环境 ...

  4. NSIS(001)检测和结束进程是否运行?

    配合插件:killer.dll 导入DLL:ReserveFile "${NSISDIR}\Plugins\killer.dll" 使用方法: ;可以检测和结束32位程序进程和64 ...

  5. 积累一点ctf需要掌握的常见脚本知识

    1.暴力破解压缩包. 2.利用像素点还原图片. from PIL import Image import re if __name__ == '__main__': x = 887 //将像素点个数进 ...

  6. iphone 耳机 线控

    有电话呼入时: 按一次接听电话: 快速按两次将电话转到语音信箱: 通话中: 按一次挂断电话: 通话中如果有第二个电话打进来时: 按一次保留当前通话并接听第二个电话: 按住两秒钟不放忽略(拒绝接听)第二 ...

  7. ZABBIX冗余架构构筑(Centos6.4+pacemaker+corosync+drbd)

    基本构成: 用pacemaker+corosync控制心跳和资源迁移 用drbd同步zabbix配置文件和mysql数据库 所有软件都用yum安装至默认路径 主机的drbd领域挂载至/drbd,备机不 ...

  8. 解剖SQLSERVER 第五篇 OrcaMDF里读取Bits类型数据(译)

    解剖SQLSERVER 第五篇  OrcaMDF里读取Bits类型数据(译) http://improve.dk/reading-bits-in-orcamdf/ Bits类型的存储跟SQLSERVE ...

  9. 设计模式之美:Extension Object(扩展对象)

    索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):使用示例结构实现 Extension Object. 实现方式(二):使用泛型实现 IExtensibleObject<T ...

  10. Linux文件系统应用---系统数据备份和迁移(用户角度)

    1   前言 首先承诺:对于从Windows系统迁移过来的用户,困扰大家的  “Linux系统下是否可以把系统文件和用户文件分开到C盘和D盘中” 的问题也可以得到完满解决. 之前的文章对Linux的文 ...