如何关闭 git 自动更正?
Posted
技术标签:
【中文标题】如何关闭 git 自动更正?【英文标题】:How do I turn off git autocorrect? 【发布时间】:2017-02-04 03:49:25 【问题描述】:当我输入 git 命令时,例如输入 git git checkout myfile
(注意额外的“git”),我得到以下输出:
WARNING: You called a Git command named 'git', which does not exist.
Continuing under the assumption that you meant 'init'
in 0.1 seconds automatically...
usage: git init [-q | --quiet] [--bare] [--template=<template-directory>] [--shared[=<permissions>]] [<directory>]
所以 git 假设我的意思是 init,并给了我 0.1 秒的时间来查看错误,然后再继续。不酷的 git!
如何关闭此“功能”?
【问题讨论】:
【参考方案1】:要查看自动更正的设置,请键入:
git config help.autocorrect
每the docs:
help.autocorrect 实际上是一个整数,表示十分之一秒。因此,如果您将其设置为 50,Git 会在执行自动更正命令之前给您 5 秒的时间来改变主意。
要关闭此功能,请使用以下命令:
git config --global help.autocorrect 0
【讨论】:
不错!将help.autocorrect
设置为0
,git 仍然会打印出一个提示,例如git: 'git' is not a git command. See 'git --help'. The most similar command is init
。并且在查找类似命令时,它还会搜索别名;例如,我将psoh
别名为push origin HEAD
,如果我将其输入错误为psoj
,它会提示我的别名。【参考方案2】:
FWIW,您也可以使用 -c help.autocorrect=0
作为任何 Git 命令的参数。例如:
git -c help.autocorrect=0 svn find-rev 5e2272613fa
它对脚本很有用,因为您不需要修改您正在运行的环境。
在这种情况下,除非安装了 git-svn,否则 Git 将无法识别 svn
命令并尝试回退到 serve
,这在脚本中可能是灾难性的。
【讨论】:
【参考方案3】:注意help.autocorrect
的默认值为 0。
您也可以将其设置为大于 1 的值:它使用十进制,因此 10 表示 1 秒,30 表示 3 秒,依此类推。
请注意,从 Git 2.14 开始,警告和继续消息将发生变化。
请参阅 Marc Branchaud (``) 的 commit 968b1fe(2017 年 6 月 21 日)。(由 Junio C Hamano -- gitster
-- 合并于 commit aca226e,2017 年 6 月 26 日)
之前,help.autoCorrect = 15
:
WARNING: You called a Git command named 'lgo', which does not exist.
Continuing under the assumption that you meant 'log'
in 1.5 seconds automatically...
之后:
WARNING: You called a Git command named 'lgo', which does not exist.
Continuing in 1.5 seconds, assuming that you meant 'log'.
【讨论】:
【参考方案4】:关闭它的最新方法(在 2020 年)是使用 Git 2.30(2021 年第一季度):“git $cmd $args
,当$cmd
不是被识别的子命令时,通过default 尝试查看 $cmd
是否是现有子命令的拼写错误,如果只有一种可能性,则可选择执行更正的命令,具体取决于 help.autocorrect
的设置。
用户现在可以通过将配置变量设置为“never
”来禁用整个功能,包括查找可能的错字所花费的周期。。 p>
参见Drew DeVault (ddevault
) 的commit 644bb95(2020 年 11 月 25 日)。(由 Junio C Hamano -- gitster
-- 合并于 commit 78abcff,2020 年 12 月 14 日)
help.c
:help.autocorrect=never
表示“不计算建议”签字人:Drew DeVault
虽然
help.autocorrect
可以设置为 0 以拒绝自动执行可能输入错误的命令,但它仍然会花费周期来计算建议,并且会浪费屏幕空间。更新
help.autocorrect
以接受字符串“never
”,以便在输入错误的命令时退出,以帮助那些不想看到建议更正的用户。同时,引入“
immediate
”作为一种更具可读性的方式来立即执行自动更正的命令,这可以用负值来完成。
git config
现在包含在其man page 中:
如果 git 检测到拼写错误并且可以准确识别出一个类似的有效命令 对于错误,git会在之后自动运行预期的命令 等待此配置值定义的持续时间 分秒(0.1 秒)。
如果此值为 0,建议更正 将显示,但不会执行。 如果是负整数,或者“immediate
”,建议的命令 立即运行。 如果“从不”,则根本不显示建议。默认值为零。
【讨论】:
以上是关于如何关闭 git 自动更正?的主要内容,如果未能解决你的问题,请参考以下文章