Git---技巧(转)

上一篇介绍了Git的基本概念和一些基本命令,本篇的重点在以下三个部分:个性化定制你的Git,更酷更巧妙的使用Git,以及如何在Git Hub上开启你本身的开源项目。在全部技巧中,最重要的技巧是学会查看Git的帮助,由于Git是一个相对复杂的版本控制工具,若是你熟悉它的命令,那么给你带来的价值是不言而喻的,因此要学会掌握那根金手指─查看Git的帮助,在任何Git命令后加上'--help'就会显示该命令的帮助文档,例如 'git log --help'你就能够看到命令'git log'的全部使用方法。接下来,从打扮Git开始吧。git

Git梳妆程序员

咱们能够利用Git的config命令或者直接编辑~/.gitconfig文件(若是没有的话建立它)来为本身打造独一无二的Git。我建议直接编辑用户目录下得.gitconfig文件,拿我本地的文件为例,一一为你们解说,完整的文件内容以下:github

[user]web

name = Phoenix服务器

email = phoenixtoday@gmail.comapp

[alias]svn

co = checkout工具

ci = commit -a学习

st = statusui

br = branch

oneline = log --pretty=oneline --since='2 days ago'

onelog = log -p -1

[color]

status = auto

branch = auto

ui = auto

该文件主要包含三个部分的内容:

用户基本信息:能够设置你的名字和email,这样在你提交代码的时候就会显示出你的名字

命令别名:这是.gitconfig文件中,我最喜欢的部分,它能够大大减小你敲击键盘的次数(俗话说优秀的程序员都很懒么)。在该文件中,我将co设置为checkout的别名,那么下次我只要用'git co new_branch'就能够切换到new_branch分支下了,简洁而优雅;将ci设置为commit -a的别名,-a选项表示我不须要将修改和删除的文件经过'git add'命令来加入索引,这样设置在使用'git ci -m"message"'这样的命令时,至关于连续执行了'git add 被修改和删除的文件'和'git commit -m"message"'两条命令,再一次节省了咱们宝贵的时间;最酷的是最后两行,后面的章节会一一介绍。Git提供许多优雅、人性化的选项,咱们若是再结合别名的设置,能够发挥你最大的想象力,真的让你本身的Git活起来

颜色:每次看diff时是否是挺痛苦的?那么为何不给咱们的Git加上颜色呢?只须要加上那三行,就可让红色和绿色的提示出如今你的控制台中

Git灵动

如今来说讲'git log','git stash','git formate-patch'三个命令的用法和技巧:

git log:不一样于SVN,Git将代码的历史记录所有在本地克隆了一份,因此这就使得'git log'这样的命令使用起来很是的迅速,也是我最常使用的Git命令之一。在使用'git log'的时候,你能够加入不少的后缀。'-p'表示查看修改的具体内容,例如'git log -p'它不但会打印出提交的时间、版本号、人员等,还会将具体的代码修改部分打印出来;'-n'其中n表示一个数字,这表示打印出具体的几个日志,例如 'git -p -1'正如个人Git配置文件中设置的onelog别名的内容同样,就表示打印出当前最新的一第二天志记录及具体修改内容;'--since="时间/日期"','--until="时间/日期"'表示你但愿查找某个日期段的日志记录,例如'git log --since="2 days ago" --until="1 hour ago"'就表示你但愿查找两天前到一小时前的日志记录,Git是足够聪明的,它能够将相似于'2 days ago'和'1 hour ago'这种表示时间的英语转化为具体的时间数字;有的时候,你不但愿翻不少页才能够看到全部的日志,你只但愿看到简短的说明,那么Git为你提供打印格式的定制'git --pretty=格式种类',其中格式种类有full、short、oneline等,例如'git log pretty=oneline'就会将每条代码历史记录放在一行里,看起来简单明了

git stash:在第一篇中,我举了一个使用branch解决紧急任务切换的问题,其实stash命令也能够很好的解决这样的问题。当你不想提交当前完成了一半的代码,可是却不得不修改一个紧急Bug,那么使用'git stash'就能够将你当前未提交到本地(和服务器)的代码推入到Git的栈中,这时候你的工做区间和上一次提交的内容是彻底同样的,因此你能够放心的修 Bug,等到修完Bug,提交到服务器上后,再使用'git stash apply'将之前一半的工做应用回来。也许有的人会说,那我可不能够屡次将未提交的代码压入到栈中?答案是能够的。当你屡次使用'git stash'命令后,你的栈里将充满了未提交的代码,这时候你会对将哪一个版本应用回来有些困惑,'git stash list'命令能够将当前的Git栈信息打印出来,你只须要将找到对应的版本号,例如使用'git stash apply stash@{1}'就能够将你指定版本号为stash@{1}的工做取出来,当你将全部的栈都应用回来的时候,可使用'git stash clear'来将栈清空

git format-patch:当你想给一个开源项目(例如Rails)提交一段代码的时候,或者你想给小组成员展现一段你并不想提交的代码,那么你仍是须要 patch的,Git的'format-patch'命令良好的支持了这个功能。我来基本描述一下使用这个命令的步骤和方法:第一,利用branch命令建立一个分支;第二,修改你的代码;第三,在该分支上提交你的修改;第四,使用'git format-patch'命令来生成一个patch文件,例如:'git format-patch master --stdout > ~/Desktop/tmp.patch'就是将工做分支与master主干的不一样,存放在'~/Desktop'文件夹下,生成一个叫作 tmp.patch的文件(另外一种简单的版本是利用diff命令,例如'git diff ..master > ~/Desktop/tmp.patch'),这样就生成了patch文件。那么别人就可使用'git apply'命令来应用patch,例如'git apply ~/Desktop/tmp.patch'就是将patch打在当前的工做分支上

  

 

Git亲友团

Git的使用技巧还包括利用Git包含的和附加的一些强大工具,这些工具主要包括git svn、git citool、gitk和Git的自动提示脚本:

git svn:Git和SVN能够很方便的集成在一块儿,这就大大减小了从SVN向Git迁移的学习成本,这也是我特别建议你们首次接触Git的使用方式。git svn是一个Git内置的工具,你安装了Git也就安装了它,譬如说大家团队有一个SVN服务器,可是你想利用Git本地的一些强大特性,那么你依然能够安装Git,使用Git的branch功能,只不过再更新代码和提交代码的时候,使用git svn命令便可。在这里我简单的讲讲最常使用和须要注意的两个命令,其他的命令读者能够经过'git svn --help'来查看:'git svn rebase'命令取代了'svn update'用于将服务器代码更新到本地;'git svn dcommit'取代了'svn ci',须要注意的是,本地必须用Git提交了代码以后,再使用'git svn dcommit'。只须要这样,你就能够轻松地从SVN转向Git了。

git citool:这是我我的使用率最频繁的一个工具,上一篇文章也提到了,Git能够本地提交代码,那么你天然能够本地修改你的提交了,这个工具就是可视化界面,用于修改你本地的提交。只要在你的工做区间输入'git citool',就会出现以下的界面

点击查看原始尺寸

你能够用它来提交代码,能够用它来将你本地的修改追加在上一次提交的代码中,你还能够用它来修改你上次提交的信息等等。这个工具能够大大帮助你完成之前SVN不可能完成的任务

gitk:是一个查看主干/分支状况的工具,它主要用于观察整个项目的分支情况,使用'gitk'命令就会出现一个图形化界面供你查看,本篇就简单的说一下,你们回去试试就知道了

Git 的自动提示脚本:它是Shawn O. Pearce为了让Git使用起来更方便而写得Shell脚本,你能够在http://gitweb.hawaga.org.uk/ 找到一个叫作gitcompletion的脚本,下载下来,并按照该脚本中指导的方式进行配置,你就具备了Git自动提示(敲入部分Git命令,再按 Tab键)的功能,并且有了这个脚本,你也能够看到你当前工做在哪一个branch下。唯一的不足是,它只支持Linux、Unix、Mac操做系统(推荐你们都用Mac进行开发)

Git实战─Git Hub

通过这么长时间理论知识的熏陶,想必你们早已跃跃欲试了,那么咱们在Git Hub上创建一个开源项目做为实战演习吧。Git Hub是全球最大的Git服务器供应商,每一个账号有100M的无偿使用空间,网址是:https://github.com/

首先咱们在Git Hub上建立一个账号,按照上面指导的方法设置好你的认证信息(每次提交代码都会须要这个认证信息)

而后,以下图新建一个项目选择Create a New Repository),名叫git usage

点击查看原始尺寸

在服务器端,你能够看到这个项目的信息,包括项目源代码的URL,以下图

在本地使用以下的命令,就能够完成你的第一次提交了:

mkdir git-usage(建立项目目录)    cd git-usage(进入项目目录)   git init(Git初始化)   touch README(建立一个README文件)    git add README(增长该文件到索引)    git commit -m 'first commit'(本地提交)    git remote add origin git@github.com:phoenixtoday/git-usage.git(增长远程服务器代码库地址)    git push origin master(将本地代码提交到远程服务器上)

总结

我所在的项目小组自从使用Git后,发现Git提供的种种特性大大提升了咱们的开发效率,在认识Git前咱们没法想象一个版本控制工具可让开发任务切换变得如此天然流畅。因此我强烈推荐你们使用Git,你付出的学习绝对物有所值

相关文章
相关标签/搜索