显示Git命令的扩展版本

时间:2015-11-16 20:55:51

标签: git command-line-interface

有没有办法让Git在执行之前打印别名命令的语义?

假设我有a别名add,我希望显示命令git a

Executing: git add

在实际输出之前。或者可能有echo子命令,因此我将a别名为echo add,子命令打印并实际执行命令?

2 个答案:

答案 0 :(得分:2)

如果你不介意再打印一点,你可以将GIT_TRACE变量设置为1,git将打印(以及其他)有关别名扩展的一些信息(cf 。man page)。

就我而言(我为st定义了别名status),如下所示:

$ GIT_TRACE=1 git st
trace: exec: 'git-st'
trace: run_command: 'git-st'
trace: alias expansion: st => 'status'
trace: built-in: git 'status'

当然,您可以将export GIT_TRACE=1放在.bashrc中,以便始终启用此功能。

如果你真的只想显示别名扩展,你可以为git定义一个运行git的shell别名,并过滤出以trace:开头但不包含的输出中的所有行alias expansion:

答案 1 :(得分:1)

您需要定义别名以包含echo语句。

一种方法是定义这样的别名:

"!echo \"executing git add\"; git add" 

您可以在此问题中找到几种不同的方法:

How to embed bash script directly inside a git alias