Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I turn off git autocorrect?

When I typo a git command, such as typing git git checkout myfile (note the extra "git") I get the following output:

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>]

So git assumes I meant init, and gives me all of 0.1 seconds to see the mistake before it moves forward. Not cool git!

How do I turn this "feature" off?

like image 826
joseph.hainline Avatar asked Sep 26 '16 17:09

joseph.hainline


3 Answers

To see the setting of autocorrect, type:

git config help.autocorrect

Per the docs:

help.autocorrect is actually an integer which represents tenths of a second. So if you set it to 50, Git will give you 5 seconds to change your mind before executing the autocorrected command.

To turn this off, use the command:

git config --global help.autocorrect 0

like image 106
joseph.hainline Avatar answered Nov 10 '22 09:11

joseph.hainline


FWIW, you may also use -c help.autocorrect=0 as a parameter to any Git command. For example:

git -c help.autocorrect=0 svn find-rev 5e2272613fa

It is useful for scripts as you don't modify the environment you are running in.

In this case, unless git-svn is installed, Git would fail to recognize the svn command and try to fall back to serve instead, which might be disastrous in a script.

like image 21
Mateusz Piotrowski Avatar answered Nov 10 '22 07:11

Mateusz Piotrowski


The up-to-date way to turn that off (in 2020) is with Git 2.30 (Q1 2021): "git $cmd $args, when $cmd is not a recognised subcommand, by default tries to see if $cmd is a typo of an existing subcommand and optionally executes the corrected command if there is only one possibility, depending on the setting of help.autocorrect.

The users can now disable the whole thing, including the cycles spent to find a likely typo, by setting the configuration variable to 'never'.

See commit 644bb95 (25 Nov 2020) by Drew DeVault (ddevault).
(Merged by Junio C Hamano -- gitster -- in commit 78abcff, 14 Dec 2020)

help.c: help.autocorrect=never means "do not compute suggestions"

Signed-off-by: Drew DeVault

While help.autocorrect can be set to 0 to decline auto-execution of possibly mistyped commands, it still spends cycles to compute the suggestions, and it wastes screen real estate.

Update help.autocorrect to accept the string "never" to just exit with error upon mistyped commands to help users who prefer to never see suggested corrections at all.

While at it, introduce "immediate" as a more readable way to immediately execute the auto-corrected command, which can be done with negative value.

git config now includes in its man page:

If git detects typos and can identify exactly one valid command similar to the error, git will automatically run the intended command after waiting a duration of time defined by this configuration value in deciseconds (0.1 sec).

  • If this value is 0, the suggested corrections will be shown, but not executed.
  • If it is a negative integer, or "immediate", the suggested command is run immediately.
  • If "never", suggestions are not shown at all.

The default value is zero.

like image 1
VonC Avatar answered Nov 10 '22 07:11

VonC