创建Git快捷方式有两个主要用例:
- 该命令非常常用,快捷方式将保存每种类型的击键:
git commit--amend--no-edit
- 该命令很少使用,并且很难记住确切的正确选项:
git log--graph\ --abbrev-commit\ --pretty= format: '%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'
在这两种情况下,都有不同的方法可以通过Git命令创建快捷方式。
外壳别名
最简单,最直接的方法是使用标准的shell别名:
alias gitamend='git commit --amend --no-edit'
如果选项本身包含简单的引号,则可能会很难看,就像上面的git log命令一样。 为了处理该特定情况,'的转义序列为'“'”“'。
Shell别名方法的好处是它可以执行Shell可以执行的所有操作, 例如管道命令,执行子Shell等。
例如,以下是我使用的快捷方式:它签出提交历史记录中的下一个提交-对于演示者在提交之间跳转非常有用:
alias gitnext='git checkout $(git rev-list --topo-order HEAD..master | tail -1)'
Git别名
先前的方法绝不是Git特有的。 但是,Git还通过git config
命令本身提供了别名功能。 语法非常简单:
git config alias.<shortcut> <command>
例如,我将这种方法用于以下快捷方式:
git config alias.amend'commit --amend --no-edit'
现在可以简单地调用:
git amend
这种方式仅在当前Git存储库中配置快捷方式。 为了无论存储库如何都可以调用它,请使用通常的--global
选项:
git config--global alias.amend 'commit --amend --no-edit'
也可以通过在其前面加上!
来调用外部二进制文件!
:
git config alias.sourcetree'!/Applications/SourceTree.app/Contents/MacOS/Sourcetree'
Git扩展/插件/子命令
最后一种方法最强大,但也最脆弱。
我什至没有找到它在Git文档中被引用的位置,甚至根本没有被引用。 指针欢迎。
只需在$PATH
上创建任何可执行文件或脚本,并将其命名为git-<command>
例如 :
git-foo
#!/bin/bash
echo Hello $1;
到那时,先前的脚本可以这样调用:
git foo John
结论
在Git中有几种创建快捷方式的方法:纯bash别名,正确的Git别名和适当命名的可执行文件。
- 第一种方法不是特定于Git的
- 第二个能够处理Git命令和选项组合
- 最后但并非最不重要的是,第三种方式允许将任何可执行文件集成到Git流中
更进一步: