在命令行中编辑Git别名
我正在使用Git for windows 安装之后,我在gitbash命令行上设置了一些Git别名。我用过:在命令行中编辑Git别名,git,bash,alias,Git,Bash,Alias,我正在使用Git for windows 安装之后,我在gitbash命令行上设置了一些Git别名。我用过: git config--global alias.st status 但是现在,我想将别名更改为diff--stat。然后,在Git bash上,我键入了Git config--global alias.st diff--stat,但它似乎没有替换以前设置的别名。当我键入git st时,它仍在运行git status。 当然,我可以转到gitconfig文件并对其进行编辑,但我想使用命令
git config--global alias.st status
但是现在,我想将别名更改为diff--stat。然后,在Git bash上,我键入了Git config--global alias.st diff--stat
,但它似乎没有替换以前设置的别名。当我键入git st
时,它仍在运行git status
。
当然,我可以转到gitconfig文件并对其进行编辑,但我想使用命令行进行更改
那么,有没有替换别名的方法?与任何其他配置选项一样,您可以通过运行git config--global alias.st来设置值,替换旧的值。遇到的问题是,如果要在所设置的值中使用空格,则需要使用引号:
git config --global alias.st "diff --stat"
不幸的是,如果您已经尝试在没有引号的情况下运行,那么您也可能触发了另一个问题。从以下位置查看此位:
简介
'git config' name [value [value_regex]]
注意,那个位被称为value\u regex
?由于您没有引用以前的命令,diff
被解释为值
,而--stat
被解释为值_regex
。那有什么用?嗯
可以使用--add选项将多行添加到一个选项中。如果
您希望更新或取消设置可能在多个服务器上发生的选项
行,需要给出POSIX regexp值\ u regex。只有现有的
与regexp匹配的值将被更新或取消设置
因此,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
设置一行配置,并永久解决您的问题。您需要引用别名:git config--global alias.st“diff--stat”
或--stat
将被视为git config
的选项,而不是diff
。我不确定这是否会产生你所描述的问题。@meagar你是对的。引用解决了这个问题。让我哑口无言。正如Git警告的那样,只需添加--替换所有@meagar你想添加一个答案,以便我能将其标记为正确吗?我的错误是,status
不需要引号,因为它只是一个单词。当我复制粘贴它时,我没有意识到它需要引用一个更复杂的别名;我不知道你能以某种方式提供重复的别名。我现在没有时间调查,但我会的,如果另一个答案没有出现,我会发布一个答案。@meagar是的,git允许您为配置选项指定多个值。它是git用于配置文件的一部分。我在下面的回答中贴了一个解释,以防你感兴趣。