Як я можу змусити git робити пропозицію "ти мав на увазі"?


120

Я набираю

git puhs

І git каже:

kristian@office:~/myrepo$ git puhs
git: 'puhs' is not a git command. See 'git --help'

Did you mean this?
      push

Яке налаштування конфігурації дозволяє git просто виконувати запропоновану команду, якщо вона містить лише одну пропозицію?

Відповіді:


150

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


27
Якщо ви встановите його на від’ємне число, це робити це безпосередньо.
Альпер

8
Чи є спосіб зробити git prompt перед виправленням, подібний до zsh? (наприклад, "правильний" puhs "для" push "[yn]?")
Ахал Дейв

4
@AchalDave Можливо, якщо ви пишете код для цього і подаєте патч / гілку gitлюдям, щоб він був прийнятий до бази коду. Наразі це не працює так ...
twalberg

1
Це, здається, працює, якщо є точно одна команда-кандидат. Наприклад, git statнічого не робить навіть після використання вашої пропозиції, оскільки в ньому є кілька кандидатів. Будь-яка пропозиція, як змусити його вибрати перший?
gokul_uf

25

Автокорекція приємна, але моєму OCD-самому потрібно трохи більше контролювати те, що відбувається. Отже, я написав прямий сценарій, який просто обирає першу пропозицію, надану git. Ви запускаєте скрипт після невдалої команди та використовуєте вбудований в баш історію підстановки синтаксис "bang bang". Крім того, якщо ви набираєте щось, що, можливо, може мати більше однієї команди, ця команда дозволяє вибрати інший, ніж перший варіант.

Це виглядатиме приблизно так,

kristian@office:~/myrepo$ git puhs
git: 'puhs' is not a git command. See 'git --help'

Did you mean this?
      push

kristian@office:~/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)

Плюс, цікаво набрати що-небудь з двома знаками оклику. Тож бонус за це.

Ось суть мого сценарію


1
Якщо чесно сказати, введення тексту git pushшвидше, ніж введення тексту idid !!. Але в інших випадках цей сценарій був би корисним :)
theonlygusti

18

Як альтернатива help.autocorrect: якщо ви постійно робите одні й ті ж помилки, ви можете створювати псевдоніми для них у вашому файлі .gitconfig

[alias]
    puhs = push

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


17

Також погляньте thefuck

Він може виправляти помилки друку, а також виконувати пропозиції. Не обмежується лише git.


Я використовую fuckкоманду вже 2 роки, вона стала однією з моїх модифікацій терміналу "не можу жити без неї" !!
Ной Суссман
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.