Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
显示Git命令的扩展版本_Git_Command Line Interface - Fatal编程技术网

显示Git命令的扩展版本

显示Git命令的扩展版本,git,command-line-interface,Git,Command Line Interface,有没有办法让Git在执行别名命令之前打印它的语义 假设我将a化名为add,我希望命令gita显示 Executing: git add 在实际输出之前。或者可能有一个echo子命令,这样我就可以将a别名为echo add,子命令打印并实际执行该命令。您需要定义别名以包含echo语句 一种方法是如下定义别名: "!echo \"executing git add\"; git add" $ GIT_TRACE=1 git st trace: exec: 'git-st' trace: run

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

假设我将
a
化名为
add
,我希望命令
gita
显示

Executing: git add

在实际输出之前。或者可能有一个
echo
子命令,这样我就可以将
a
别名为
echo add
,子命令打印并实际执行该命令。

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

一种方法是如下定义别名:

"!echo \"executing git add\"; git add" 
$ GIT_TRACE=1 git st
trace: exec: 'git-st'
trace: run_command: 'git-st'
trace: alias expansion: st => 'status'
trace: built-in: git 'status'
在这个问题中,您可以找到几种不同的方法:


如果您不介意打印多一点,您可以将
GIT_TRACE
变量设置为
1
,GIT将打印(除其他外)有关别名扩展的一些信息(参见)

在我的例子中(我为
状态定义了一个别名
st
),如下所示:

"!echo \"executing git add\"; git add" 
$ GIT_TRACE=1 git st
trace: exec: 'git-st'
trace: run_command: 'git-st'
trace: alias expansion: st => 'status'
trace: built-in: git 'status'
当然,例如,您可以在
.bashrc
中放入
导出GIT_TRACE=1
,使其始终处于启用状态


如果您真的只想显示别名扩展,您可能可以为运行git的
git
定义一个shell别名,并从输出中筛选出以
trace:
开头但不包含
alias扩展:

的所有行,如果I
.bashrc
它,在其他情况下不打算添加跟踪输出吗,当然,这会影响你所有的git进程。但是您可以随意设置和取消设置它,也可以在命令前面加上前缀,就像我的示例中那样,只使用它运行一次git。您找到比这两个答案更好的方法了吗?我真的希望看到别名扩展,而不是跟踪的其余部分,并将所有别名转换为
!回声也不是为我剪的