关于Git和Github
英文原文: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 了解,我推荐一些资料:
- ProGit, 最好的 Git 指南
- Advanced Git
- Git and GitHub Secrets
from:http://news.cnblogs.com/n/530478/
关于Git和Github的更多相关文章
- 简单使用Git和Github来管理自己的代码和读书笔记
原文链接:http://my.oschina.net/bxxfighting/blog/378196 先注册github.com的账号官方网站: https://github.com/ 注册界面, ...
- git for windows 的默认工作路径(HOME)的设置以及Git与GitHub之间的SSH加密协议
1.安装及配置默认路径 Windows中从GitHub上面:https://git-for-windows.github.io/ 下载安装好git后(双击,改一下需要的安装路径,一路确定就好了),安装 ...
- git与github安装、配置、pull、push
操作系统是Ubuntu 16.04 LTS 64bit 1 安装git (1)安装 sudo apt-get install git-core (2)一些全局变量的初始化 在本地建立一个文件夹,然后做 ...
- 转:sublime上使用git连接github
"工欲善其事,必先利其器." 这是古人的教诲,也是一个高效率的工程师需要遵循的法则之一.从大学开始写Java使用了JBuilder,Eclipse,后来写PHP用了Zend,写Ja ...
- git与github使用
Git和Github简单教程 目录: 零.Git是什么 一.Git的主要功能:版本控制 二.概览 三.Git for Windows软件安装 四.本地Git的使用 五.Github与Git的关联 六. ...
- linux下git以及github的连接与使用
简单理解 Git 的思想和基本的工作原理,能够更好的进一步和使用Git.在开始学习Git 的时候,最好不要把Git的各种概念和其他的版本控制系统诸如 Subversion 等相比,否则容易混淆每个操作 ...
- Git和Github简单教程
原文链接:Git和Github简单教程 网络上关于Git和GitHub的教程不少,但是这些教程有的命令太少不够用,有的命令太多,使得初期学习的时候需要额外花不少时间在一些当前用不到的命令上. 这篇文章 ...
- Git和Github简单教程(转)
这篇文章只挑一部分命令来讲,差不多够用就行的程度.如果需要其他命令,到时候再去其他地方了解就行了先在Github上写好再搬过来的:本文Github链接 目录: 零.Git是什么 一.Git的主要功能: ...
- WebStorm和sublime上使用git连接github(转)
WebStorm使用git连接github的方法: 用webstorm上传代码时,首先要先下载git,网址一搜就可以搜到,安装git,并且把ssh配置到github上.然后开始配置webstorm,打 ...
- git和github使用方式
git 和github github是远程管理代码的服务器的名称 git代码管理系统 (git既然是一个系统,所以说git也有一些命令) git操作过程 首先在本地建立一个仓库,用来把代码提交到git ...
随机推荐
- oc特有语法
分类 问题 1.什么是分类? 就是把一个类的功能,分出一部分来放在一个独立的文件中 2.分类的语法是什么样的? @interface Person(SuperMan) 3.分类与类是什么关系? 分类依 ...
- 设计模式之桥接模式(Bridge)--结构模型
1.意图 将抽象部分与它的实现部分分离,使它们可以独立地变化. 2.适用性 你不希望在抽象和它的实现部分之间有一个固定的绑定关系. 类的抽象与它的实现都应该可以通过子类的方式加以扩展. 抽象部分与实现 ...
- PhpExcel使用方法
下面是总结的几个使用方法 include 'PHPExcel.php'; include 'PHPExcel/Writer/Excel2007.php'; //或者include 'PHPExcel/ ...
- 如何实现button像a标签一样跳转页面
这个实现起来很简单,如下: <a href="{% url 'cms:add' %}"> <button class="btn btn-default& ...
- Fire Net--hdu1045
Fire Net Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
- 纯CSS美化的checkbox 和 radio
html <!DOCTYPE HTML> <html> <head> <title>纯CSS3实现自定义美化复选框和单选框</title> ...
- tftp使用方法
参数说明:-l 是local的缩写,后跟存在于Client的源文件名,或下载Client后 重命名的文件名. -r 是remote的缩写,后跟Se ...
- linux之SQL语句简明教程---SELECT
SQL是用来做什么的呢?一个最常用的方式是将资料从数据库中的表格内选出.从这一句回答中,我们马上可以看到两个关键字: 从 (FROM) 数据库中的表格内 选出 (SELECT).(表格是一个数据库内的 ...
- word2vec 入门(二)使用教程篇
word2vec 要解决问题: 在神经网络中学习将word映射成连续(高维)向量,这样通过训练,就可以把对文本内容的处理简化为K维向量空间中向量运算,而向量空间上的相似度可以用来表示文本语义上的相似度 ...
- wireshark 过滤条件汇总
原文地址:http://blog.const.net.cn/a/9340.htm 一.针对wireshark最常用的自然是针对IP地址的过滤.其中有几种情况: (1)对源地址为192.168.0.1的 ...