2.7 Git 基础 - Git 别名

Git 别名

在我们结束本章 Git 基础之前,正好有一个小技巧可以使你的 Git 体验更简单、容易、熟悉:别名。我们不会在之后的章节中引用到或假定你使用过它们,但是你大概应该知道如何使用它们。

Git 并不会在你输入部分命令时自动推断出你想要的命令。如果不想每次都输入完整的 Git 命令,可以通过 git config 文件来轻松地为每一个命令设置一个别名。这里有一些例子你可以试试:

  1. $ git config --global alias.co checkout
  2. $ git config --global alias.br branch
  3. $ git config --global alias.ci commit
  4. $ git config --global alias.st status

这意味着,当要输入 git commit 时,只需要输入 git ci。随着你继续不断地使用 Git,可能也会经常使用其他命令,所以创建别名时不要犹豫。

在创建你认为应该存在的命令时这个技术会很有用。例如,为了解决取消暂存文件的易用性问题,可以向 Git 中添加你自己的取消暂存别名:

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

这会使下面的两个命令等价:

  1. $ git unstage fileA
  2. $ git reset HEAD -- fileA

这样看起来更清楚一些。通常也会添加一个 last 命令,像这样:

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

这样,可以轻松地看到最后一次提交:

  1. $ git last
  2. commit 66938dae3329c7aebe598c2246a8e6af90d04646
  3. Author: Josh Goebel <dreamer3@example.com>
  4. Date: Tue Aug 26 19:48:51 2008 +0800
  5. test for current head
  6. Signed-off-by: Scott Chacon <schacon@example.com>

可以看出,Git 只是简单地将别名替换为对应的命令。然而,你可能想要执行外部命令,而不是一个 Git 子命令。如果是那样的话,可以在命令前面加入 ! 符号。如果你自己要写一些与 Git 仓库协作的工具的话,那会很有用。我们现在演示将 git visual 定义为 gitk 的别名:

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

原文: https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-Git-%E5%88%AB%E5%90%8D