精通git中文版(连载九)

3.7 提示及技巧(Tips and Tricks)

  在我们结束本章的Git基础之前,一些小的提示和技巧将会使你的Git体验更简单,容易或者更熟练。许多使用Git的人并没有使用任何技巧,我们并不想参考他们,也不想假定你会在本书的后面使用他们;但你可能应该知道怎么做。

  

  3.7.1 自动补全(Auto-completion)

  如果你使用了Bash shellGit会提供一个非常友好的自动补全脚本让你使能该功能。下载Git source code,查看contrib/completion目录;那里应该会有一个文件称为git-completion.bash。copy这个文件到你的home目录,增加以下行到你的.bashrc 文件中:

  Source ~/.git-completion.bash

  如果你想设置Git对所有用户都自动使用bash shell补全功能,copy 这个脚本到Mac系统的/opt/local/etc/bash_completion.d目录或者到Linux系统中的/etc/bash_completion.d目录。Bash将会自动加载该目录下的脚本来提供shell补全功能。

  如果你正在使用WindowsGit Bash, 这是你在Windows上安装msysgit时缺省安装的;那么,自动补全应该是预配置的功能。

  当你在写一个Git命令时,按下Tab键,它会返回一系列可选的选项供你选择:

  $ git co<tab><tab>

  commit config

  在这种情况下,输入git co然后按Tab键两次将会建议commitconfig。增加m<tab>会自动完成git commit命令。

  这个功能也可以工作在选项模式下,这可能会更有用。例如,如果你运行一个git log命令但不记得其中的一个选项了,你可以开始输入它并按下Tab键来看一下都有什么匹配项:

  $ git log --s<tab>

  --shortstat --since= --src-prefix= --stat –summary

  这是一个相当好用的技巧,可能会节省你一些时间去查看文档。

  

  3.7.2 Git别名 (Git Aliases)

  如果你仅仅输入了一个命令的一部分,Git并不会主动推断你的命令。如果你不想输入每个命令的全部文本,你可以用git config来为每个命令设置一个别名。以下是一些你可能会设置的示例:

  $ git config --global alias.co checkout

  $ git config --global alias.br branch

  $ git config --global alias.ci commit

  $ git config --global alias.st status

  这意味者你可以输入git ci来代替输入git commit。当你在后续使用Git时,你可能还会经常性地使用其它一些命令;在这种情况下,请不要犹豫去创建一些新的别名。

  这个技巧用来创建一些你认为应该存在的一些命令也是非常有用的。例如,为了纠正你在去缓存(unstage)一个文件时遇到的问题,你可以增加一个你自己的去缓存(unstage)别名给Git:

  $ git config --global alias.unstage 'reset HEAD --'

  这使得以下两个命令是等同的:

  $ git unstage fileA

  $ git reset HEAD fileA

  看起来有一点清楚了。增加一个last命令也很常见,如下:

  $ git config --global alias.last 'log -1 HEAD'

  这次,你可以简单地看到最后的那个提交了:

  $ git last

  commit 66938dae3329c7aebe598c2246a8e6af90d04646

  Author: Josh Goebel <[email protected]>

  Date: Tue Aug 26 19:48:51 2008 +0800

  test for current head

  Signed-off-by: Scott Chacon <[email protected]>

  正如你所看到的那样,Git只是简单地用你命名的别名来替代新的命令。然而,也许你想运行一个外部命令而不是Git的一个子命令。在这种情况下,你可以用 !来启动命令。这是非常有用的,如果你写了一些你自己的工具来与Git库一起工作的话。我们可以来演示一下用别名git visual来运行gitk:

  $ git config --global alias.visual "!gitk"


3.8 总结(Summary)

  到此为止,你可以做所有的那些基本的本地Git操作了--创建或clone一个库,做更改,缓存及提交更改,浏览更改的全部历史。下一步,我们将讲解Git的杀手级功能:分支模型。

你可能感兴趣的:(精通git中文版(连载九))