如何关闭 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 自动更正?的主要内容,如果未能解决你的问题,请参考以下文章

word中如何取消日期自动更正

text 键入文本框时如何关闭自动更正?

Visual Studio - 如何在运行宏时禁用自动格式化/更正?

*真的*关闭zsh自动更正

使用 CSS 或 JavaScript 关闭输入的自动更正

CustomTextField - 自动完成/自动更正不会在点击时关闭