有沒有辦法在執行之前讓Git打印別名命令的語義?顯示擴展版本的Git命令
假設我有別名a
到add
,我想命令git a
實際的輸出前顯示
Executing: git add
。或者,也許有一個echo
子命令,以便我別名a
至echo add
和子命令打印並實際執行該命令?
有沒有辦法在執行之前讓Git打印別名命令的語義?顯示擴展版本的Git命令
假設我有別名a
到add
,我想命令git a
實際的輸出前顯示
Executing: git add
。或者,也許有一個echo
子命令,以便我別名a
至echo add
和子命令打印並實際執行該命令?
您需要定義別名以包含echo語句。
一種方法是這樣定義的別名:
"!echo \"executing git add\"; git add"
有幾種不同的方式來做到這一點,你可以在這個問題上找到:
如果您不要介意打印一點點,你可以設置GIT_TRACE
變量爲1
,git將打印(除其他外)一些關於別名擴展的信息(參見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
有這個始終啓用。
如果你真的想只顯示別名擴展,你很可能定義一個shell別名git
運行Git和過濾掉與trace:
開始,但不包含alias expansion:
輸出的所有行。
如果我'.bashrc'它,是不是會在其他場合添加跟蹤輸出呢? – krlmlr
當然,這會影響你所有的git進程。但是你可以隨意設置和取消設置,也可以像在我的例子中一樣將命令加上前綴,以便只運行一次git。 –