英文原文:Ten Things You Didn't Know Git And GitHub Could Do

  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的修改历史,例如:

> git log -p README.md

  git log -S’PATTERN’

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

> git log -S'stupid'

  git add -p

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

> git add -p

  git rm –cached FILE

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

> git rm --cached database.yml

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

  git log ..BRANCH

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

> git log ..master

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

  git branch –merged & git branch –no-merged

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

> git branch --no-merged

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

  git branch –contains SHA

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

> 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 也会提高你日常效率。

  为了更好的加深你对的 Git 和 Github 了解,我推荐一些资料:

from:http://news.cnblogs.com/n/530478/

关于Git和Github的更多相关文章

  1. 简单使用Git和Github来管理自己的代码和读书笔记

    原文链接:http://my.oschina.net/bxxfighting/blog/378196   先注册github.com的账号官方网站: https://github.com/ 注册界面, ...

  2. git for windows 的默认工作路径(HOME)的设置以及Git与GitHub之间的SSH加密协议

    1.安装及配置默认路径 Windows中从GitHub上面:https://git-for-windows.github.io/ 下载安装好git后(双击,改一下需要的安装路径,一路确定就好了),安装 ...

  3. git与github安装、配置、pull、push

    操作系统是Ubuntu 16.04 LTS 64bit 1 安装git (1)安装 sudo apt-get install git-core (2)一些全局变量的初始化 在本地建立一个文件夹,然后做 ...

  4. 转:sublime上使用git连接github

    "工欲善其事,必先利其器." 这是古人的教诲,也是一个高效率的工程师需要遵循的法则之一.从大学开始写Java使用了JBuilder,Eclipse,后来写PHP用了Zend,写Ja ...

  5. git与github使用

    Git和Github简单教程 目录: 零.Git是什么 一.Git的主要功能:版本控制 二.概览 三.Git for Windows软件安装 四.本地Git的使用 五.Github与Git的关联 六. ...

  6. linux下git以及github的连接与使用

    简单理解 Git 的思想和基本的工作原理,能够更好的进一步和使用Git.在开始学习Git 的时候,最好不要把Git的各种概念和其他的版本控制系统诸如 Subversion 等相比,否则容易混淆每个操作 ...

  7. Git和Github简单教程

    原文链接:Git和Github简单教程 网络上关于Git和GitHub的教程不少,但是这些教程有的命令太少不够用,有的命令太多,使得初期学习的时候需要额外花不少时间在一些当前用不到的命令上. 这篇文章 ...

  8. Git和Github简单教程(转)

    这篇文章只挑一部分命令来讲,差不多够用就行的程度.如果需要其他命令,到时候再去其他地方了解就行了先在Github上写好再搬过来的:本文Github链接 目录: 零.Git是什么 一.Git的主要功能: ...

  9. WebStorm和sublime上使用git连接github(转)

    WebStorm使用git连接github的方法: 用webstorm上传代码时,首先要先下载git,网址一搜就可以搜到,安装git,并且把ssh配置到github上.然后开始配置webstorm,打 ...

  10. git和github使用方式

    git 和github github是远程管理代码的服务器的名称 git代码管理系统 (git既然是一个系统,所以说git也有一些命令) git操作过程 首先在本地建立一个仓库,用来把代码提交到git ...

随机推荐

  1. OC学习中遇到的问题总结

    1.不要在初始化的时候用self.方法,因为在初始化的时候self.,此时系统还没有alloc开辟空间,这样做违背了系统流程. 2.善于运用宏定义来控制程序中的变量,这样程序可修改性高. 3.obje ...

  2. .Net中如何使用MySql连接池

    提供一份官方的译文.翻译也挺辛苦的!! 6.4 Using Connector/Net with Connection Pooling 6.4在Connector/Net中使用连接池 The Conn ...

  3. [STOI2014]舞伴(dp)

    STOI是汕头OI...无聊翻到了去年的比赛题目,就写然后自己测了一下. 其实我很想吐槽为什么题目名是perm,perm好像和舞伴完全无关.. dp(x,s)=∑dp(x-1,s-{i}))(0< ...

  4. AngularJS心得体会

    AngularJS早些时候有过了解,知道这是一个JS的MVC框架,同类型的框架还有Backbone等.这次是由于项目需要,学习了两天的Angular后开始着手改之前的项目代码,这里大概说一下这一周学习 ...

  5. PC远程调试移动设备(转载)

    我们在移动端进行前端开发时,会遇到一个让人头痛但不得不面对的问题--调试. 在 PC 机器上,我们有功能强大的 Chrome DevTools.Firebug,即便是老版本的 IE ,我们也可以安装微 ...

  6. HTML5动画图片播放器 高端大气

    我们见过很多图片播放插件(焦点图),很多都基于jQuery.今天介绍的HTML5图片播放器很特别,它不仅在图片间切换有过渡动画效果,而且在切换时图片中的元素也将出现动画效果,比如图中的文字移动.打散. ...

  7. mysql 根据规定的数组进行排序

    最近在开发中遇到一个问题,我要根据一组商品的佣金进行排序和分页,可是佣金并不在商品表中,于是我就只能通过数组的操作把佣金计算出来,然后通过array_multisort()方法进行排序,可是无法做到分 ...

  8. jQuery插件jqplot的详细配置说明和渲染器

    jQuery插件jqplot的详细配置说明和渲染器 (2012-08-23 08:57:42) 转载▼ 标签: jqplot 详细配置 渲染器 it 分类: 技术类 jQuery.jqplot插件的官 ...

  9. oracle表空间使用率统计查询

    今天发现有一张采样表从1月5号开始不记录数据了,所以想查看一下表空间使用率,在网上零零散散找了很多资料,现在记录如下,也不知道哪一个最准确.还有一个就是网上拷贝的sql代码格式太乱了,不好看,找到一个 ...

  10. interbase C++Builder 简单例子

    interbase C++Builder  的例子,网上找了半天也没找到合适的,下面是一般能搜索到的文章,现在整理下: 下面我以interbase―――C++Builder,介绍一个简单的例子(不过很 ...