【问题标题】:How do I turn off git autocorrect?如何关闭 git 自动更正?
【发布时间】: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!

如何关闭此“功能”?

【问题讨论】:

    标签: git autocorrect


    【解决方案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”,建议的命令 立即运行。
        • 如果“从不”,则根本不显示建议。

        默认值为零。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-01-16
          • 2021-07-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-02
          相关资源
          最近更新 更多