显示 Git 命令的扩展版本
Show expanded version of Git command
有没有办法让 Git 在执行别名命令之前打印其语义?
假设我已将 a
别名为 add
,我希望命令 git a
显示
Executing: git add
在实际输出之前。或者也许有一个 echo
子命令,以便我将 a
别名为 echo add
并且子命令打印并实际执行命令?
您需要定义别名以包含 echo 语句。
一种方法是像这样定义别名:
"!echo \"executing git add\"; git add"
您可以在这个问题中找到几种不同的方法:
How to embed bash script directly inside a git alias
如果您不介意多打印一点,您可以将 GIT_TRACE
变量设置为 1
并且 git 将打印(除其他外)一些关于别名扩展(参见man page)。
在我的例子中(我为 status
定义了一个别名 st
),它看起来像这样:
$ 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:
.
有没有办法让 Git 在执行别名命令之前打印其语义?
假设我已将 a
别名为 add
,我希望命令 git a
显示
Executing: git add
在实际输出之前。或者也许有一个 echo
子命令,以便我将 a
别名为 echo add
并且子命令打印并实际执行命令?
您需要定义别名以包含 echo 语句。
一种方法是像这样定义别名:
"!echo \"executing git add\"; git add"
您可以在这个问题中找到几种不同的方法:
How to embed bash script directly inside a git alias
如果您不介意多打印一点,您可以将 GIT_TRACE
变量设置为 1
并且 git 将打印(除其他外)一些关于别名扩展(参见man page)。
在我的例子中(我为 status
定义了一个别名 st
),它看起来像这样:
$ 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:
.