章节 ▾ 第二版

2.7 Git 基础 - Git Alias

Git Alias

在进入下一章之前,我们想介绍一个功能,它可以让你的 Git 体验更简单、更容易、更熟悉:别名。为了清晰起见,我们不会在本书的其他地方使用它们,但是如果你经常使用 Git,那么别名是你应该了解的功能。

如果你部分输入命令,Git 不会自动推断你的命令。如果你不想输入每个 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 别名添加到 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 <dreamer3@example.com>
Date:   Tue Aug 26 19:48:51 2008 +0800

    Test for current head

    Signed-off-by: Scott Chacon <schacon@example.com>

如你所知,Git 只是用你为其设置别名的任何内容替换新命令。但是,也许你想运行一个外部命令,而不是一个 Git 子命令。在这种情况下,你需要在命令前加上 ! 字符。如果你编写自己的与 Git 仓库一起工作的工具,这会很有用。我们可以通过将 git visual 别名为运行 gitk 来演示:

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