Как я могу сделать git предложение "вы имели в виду"?

Я печатаю

git puhs

И git говорит:

[email protected]:~/myrepo$ git puhs
git: 'puhs' is not a git command. See 'git --help'

Did you mean this?
      push

Что такое настройка конфигурации, чтобы сделать git просто выполнить предлагаемую команду, если у нее есть только одно предложение?

Ответ 1

Согласно git -config (1), вы хотите установить help.autocorrect соответствующим образом. Например, git config --global help.autocorrect 5 заставит его ждать полсекунды, прежде чем запускать команду, чтобы вы могли сначала увидеть сообщение.

Ответ 2

Автокоррект хорош, но моему OCD-самому нужно немного больше контролировать, что происходит. Итак, я написал простой script, который просто выбирает первое предложение, предоставленное git. Вы запускаете script после неудачной команды и используете встроенный синтаксис замены bash "bang bang". Кроме того, если вы печатаете то, что может иметь более одной команды, эта команда позволяет выбрать другой вариант, кроме первого.

Он будет выглядеть примерно так:

[email protected]:~/myrepo$ git puhs
git: 'puhs' is not a git command. See 'git --help'

Did you mean this?
      push

[email protected]:~/myrepo$ idid !!
Counting objects: 18, done.
Delta compression using up to 32 threads.
Compressing objects: 100% (10/10), done.
Writing objects: 100% (10/10), 1.17 KiB, done.
Total 10 (delta 6), reused 0 (delta 0)

Плюс, весело набирать что-либо с двумя восклицательными знаками. Так что бонус за это.

Здесь gist с моим script

Ответ 3

Также посмотрите thefuck

Он может исправлять опечатки, а также выполнять предложения. Не ограничивается git.

Ответ 4

В качестве альтернативы help.autocorrect: если вы делаете одинаковые опечатки все время, вы можете создать для них псевдонимы в файле .gitconfig

[alias]
    puhs = push

(Я тоже делаю это с помощью псевдонимов оболочки, где я никогда не могу правильно напечатать mkae^H^H^H^Hmake.)