我正在使用Git for windows。
安装后,我在Git bash命令行上设置了一些Git别名。我用了:
git config --global alias.st status
但是现在,我想将别名更改为diff --stat。然后,在Git bash上,我键入了git config --global alias.st diff --stat
,但它似乎没有替换先前设置的别名。当我输入git st
时,它仍在运行git status
。
当然,我可以转到gitconfig文件并对其进行编辑,但我想使用命令行进行更改。
那么,有没有办法替换别名?
答案 0 :(得分:6)
与任何其他配置选项一样,您可以通过运行git config --global alias.st <value here>
来设置值,替换旧值。您遇到的问题是,当您想要设置值的空格时,您需要使用引号:
git config --global alias.st "diff --stat"
不幸的是,如果您已经尝试过没有引号的运行,那么您可能也会触发其他问题。看看documentation for git config
:
<强>概要强>
'git config' name [value [value_regex]]
请注意那里有一个叫value_regex
的位?由于您没有引用上一个命令,diff
被解释为value
,而--stat
被解释为value_regex
。那是做什么的?嗯......
可以使用--add选项将多行添加到选项中。如果 您想要更新或取消设置多个选项 行,需要给出POSIX正则表达式value_regex。只有现有的 更新或取消设置与正则表达式匹配的值。
所以发生的事情是git尝试更新已经具有值alias.st
的配置选项--stat
。由于不存在这样的配置行,git为alias.st
创建了第二个配置行。您可以通过运行确认:
git config --global --get-all alias.st
哪个应显示alias.st
的两个值。要解决此问题,您应该运行:
git config --global --replace-all alias.st "diff --stat"
哪个应该让你回到alias.st
的一个配置行,并解决你的问题。