Как отключить автозамену git?

Когда я набираю команду git, такую ​​как: git git checkout myfile (обратите внимание на дополнительный "мерзавец") Я получаю следующий вывод:

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 секунды, чтобы увидеть ошибку, прежде чем она двинется вперед. Не крутой мерзавец!

Как отключить эту "функцию"?

5 ответов

Чтобы увидеть настройку автозамены, введите:

git config help.autocorrect

Согласно документам:

help.autocorrect - это целое число, представляющее десятые доли секунды. Поэтому, если вы установите его на 50, Git даст вам 5 секунд, чтобы передумать, прежде чем выполнять автокорректированную команду.

Чтобы отключить это, используйте команду:

git config --global help.autocorrect 0

FWIW, вы также можете использовать -c help.autocorrect=0 в качестве параметра для любой команды Git. Например:

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

Это полезно для сценариев, так как вы не изменяете среду, в которой вы работаете.

В этом случае, если не установлен git-svn, Git не сможет распознать svn командовать и попытаться отступить к serve вместо этого, что может иметь катастрофические последствия в сценарии.

Самый современный способ отключить это (в 2020 году) - в Git 2.30 (первый квартал 2021 года): " git $cmd $args, когда не распознанная подкоманда, по умолчанию пытается проверить, не $cmd является опечаткой существующей подкоманды и при необходимости выполняет исправленную команду, если есть только одна возможность, в зависимости от настройки.

Теперь пользователи могут отключить все это , включая циклы, потраченные на поиск вероятной опечатки, установив для переменной конфигурации значение ''.

См. (25 ноября 2020 г.) Дрю ДеВолт ( ddevault) .
(Слияние Junio ​​C Hamano - gitster- в коммите 78abcff, 14 декабря 2020 г.)

Commit 644bb95help.c: help.autocorrect=never означает "не рассчитывать предложения"

Подписано: Дрю ДеВолт

Хотя может быть установлено значение 0, чтобы отклонить автоматическое выполнение команд, возможно, с ошибками, он по-прежнему тратит циклы на вычисление предложений и тратит впустую пространство экрана.

Обновлять help.autocorrect принять строку " never"просто выйти с ошибкой при неправильном вводе команд, чтобы помочь пользователям, которые предпочитают никогда не видеть предлагаемые исправления.

При этом введите "" как более читаемый способ немедленно выполнить автокорректирующую команду, которая может быть выполнена с отрицательным значением.

git configтеперь включает в свою справочную страницу :

Если git обнаруживает опечатки и может идентифицировать ровно одну допустимую команду, аналогичную ошибке, git автоматически запускает намеченную команду после ожидания периода времени, определенного этим значением конфигурации в децисекундах (0,1 сек).

  • Если это значение равно 0, предлагаемые исправления будут показаны, но не выполнены.
  • Если это отрицательное целое число, или " immediate", предложенная команда запускается немедленно.
  • Если «никогда», предложения не отображаются вообще.

Значение по умолчанию - ноль.

Обратите внимание на значение по умолчанию для help.autocorrect это 0.

Вы также можете установить для него значение, большее 1: оно использует десятичные секунды, поэтому 10 будет 1 секунда, 30 будет 3 секунды и так далее.

Обратите внимание, что начиная с Git 2.14, предупреждение и сообщение о продолжении изменятся.
См. Коммит 968b1fe (21 июня 2017 г.) от Marc Branchaud (``).
(Объединено Юнио С Хамано - gitster - в комитете aca226e, 26 июня 2017 г.)

До того, как 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'.

git config --global help.autocorrect 0

Другие вопросы по тегам