章节 ▾ 第二版

2.7 Git 基础 - Git 别名

Git 别名

在我们进入下一章之前,我们想介绍一个可以使您的 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,您可能会经常使用其他命令;不要犹豫创建新的别名。

此技术对于创建您认为应该存在的命令也很有用。例如,为了纠正您在使用“撤销暂存文件”时遇到的可用性问题,您可以向 Git 添加自己的“unstage”别名。

$ 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'