有没有办法让Git在执行之前打印别名命令的语义?
假设我有a
别名add
,我希望显示命令git a
Executing: git add
在实际输出之前。或者可能有echo
子命令,因此我将a
别名为echo add
,子命令打印并实际执行命令?
答案 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"
您可以在此问题中找到几种不同的方法: