Git
章节 ▾ 第二版

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 中

$ 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'
scroll-to-top