8 个让我更有效率的 Git 别名
使用别名为你最常用或复杂的 Git 命令创建快捷方式。
这篇出色的文章《改变我使用 Git 工作方式的七个技巧》启发了我写下另一个对我在命令行上使用 Git 的经验有重大影响的 Git 特性:别名。
定义 Git 的别名来替代命令有两大好处。
- 它简化了有许多选项的长命令,使它们更短,更容易记住。
- 缩短了经常使用的命令,使你的工作更有效率。
如何定义和使用别名
要定义 Git 的别名,请使用 git config
命令,加上别名和要替换的命令。例如,要为 git push
创建别名 p
:
1 |
|
你可以通过将别名作为 git
的参数来使用别名,就像其他命令一样:
1 |
|
要查看所有的别名,用 git config
列出你的配置:
1 |
|
你也可以用你喜欢的 shell 来定义别名,比如 Bash 或 Zsh。不过,用 Git 定义别名有几个功能是用 shell 无法实现的。首先,它允许你在不同的 shell 中使用别名,而无需额外配置。此外,它还集成了 Git 的自动更正功能,所以当你输入错误的命令时,Git 可以建议你正确的别名。最后,Git 还会将别名保存在用户配置文件中,你可以通过复制一个文件将别名转移到其他机器上。
无论使用哪种方法,定义别名都能改善你使用 Git 的整体体验。更多关于定义 Git 别名的信息,请看《Git Book》。
8 个有用的 Git 别名
现在你知道如何创建和使用别名了,来看看一些有用的别名。
1、Git 状态
Git 命令行用户经常使用 status
命令来查看已更改或未跟踪的文件。默认情况下,这个命令提供了很多行的冗长输出,你可能不想要或不需要。你可以使用一个别名来处理这两个组件。定义别名 st
来缩短命令,并使用选项 -sb
来输出一个不那么啰嗦的状态和分支信息。
1 |
|
如果你在一个干净的分支上使用这个别名,你的输出就像这样:
1 |
|
在一个带有已更改和未跟踪文件的分支上使用它,会产生这样的输出:
1 |
|
2、Git 单行日志
创建一个别名,以单行方式显示你的提交,使输出更紧凑:
1 |
|
使用这个别名可以提供所有提交的简短列表:
1 |
|
3、Git 的最近一次提交
这将显示你最近一次提交的详细信息。这是扩展了《Git Book》中 别名 一章的例子:
1 |
|
用它来查看最后的提交:
1 |
|
4、Git 提交
当你对 Git 仓库进行修改时,你会经常使用 git commit
。使用 cm
别名使 git commit -m
命令更有效率:
1 |
|
因为 Git 别名扩展了命令,所以你可以在执行过程中提供额外的参数:
1 |
|
5、Git 远程仓库
git remote -v
命令列出了所有配置的远程仓库。用别名 rv
将其缩短:
1 |
|
6、Git 差异
git diff
命令可以显示不同提交的文件之间的差异,或者提交和工作树之间的差异。用 d
别名来简化它:
1 |
|
标准的 git diff
命令对小的改动很好用,但对于比较复杂的改动,外部工具如 vimdiff
就更有用。创建别名 dv
来使用 vimdiff
显示差异,并使用 y
参数跳过确认提示:
1 |
|
使用这个别名来显示两个提交之间的 file1
差异:
1 |
|
7、Git 配置列表
gl
别名可以更方便地列出所有用户配置:
1 |
|
现在你可以看到所有定义的别名(和其他配置选项):
1 |
|
8、搜索提交
Git 别名允许你定义更复杂的别名,比如执行外部 shell 命令,可以在别名前加上 !
字符。你可以用它来执行自定义脚本或更复杂的命令,包括 shell 管道。
例如,定义 se
别名来搜索你的提交:
1 |
|
使用这个别名来搜索提交中的特定字符串:
1 |
|
自动更正你的别名
使用 Git 别名的一个很酷的好处是它与自动更正功能的原生集成。如果你犯了错误,默认情况下,Git 会建议使用与你输入的命令相似的命令,包括别名。例如,如果你把 status
打成了 ts
,而不是 st
,Git 会推荐正确的别名:
1 |
|
如果你启用了自动更正功能,Git 会自动执行正确的命令:
1 |
|
优化 Git 命令
Git 别名是一个很有用的功能,它可以优化常见的重复性命令的执行,从而提高你的效率。Git 允许你定义任意数量的别名,有些用户会定义很多别名。我更喜欢只为最常用的命令定义别名 —— 定义太多别名会让人难以记忆,而且可能需要查找才能使用。
更多关于别名的内容,包括其他有用的内容,请参见 Git 维基的别名页面。
via: https://opensource.com/article/20/11/git-aliases
作者:Ricardo Gerardi 选题:lujun9972 译者:wxy 校对:wxy