Come posso fare in modo che git esegua il suggerimento "intendevi"?


120

io digito

git puhs

E git dice:

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

Did you mean this?
      push

Qual è l'impostazione di configurazione per fare in modo che git esegua il comando suggerito se ha solo un suggerimento?

Risposte:


150

Secondo git-config (1) , vuoi impostare in modo help.autocorrectappropriato. Ad esempio, git config --global help.autocorrect 5farà aspettare mezzo secondo prima di eseguire il comando in modo da poter vedere prima il messaggio.


27
Se lo imposti su un numero negativo, lo fa direttamente.
Alper

8
C'è un modo per rendere git prompt prima della correzione, simile a zsh? (ad esempio, "correggere 'puh' a 'push' [yn]?")
Achal Dave

4
@AchalDave Probabilmente c'è, se scrivi il codice per farlo e invii la patch / branch alla gitgente per farlo accettare nel codice di base. Attualmente, non funziona in questo modo ...
twalberg

1
Questo sembra funzionare se e solo se c'è esattamente un comando candidato. Ad esempio, git statnon fa nulla anche dopo aver utilizzato il tuo suggerimento perché ha più candidati. Qualche suggerimento su come farlo scegliere il primo?
gokul_uf

25

La correzione automatica è buona, ma il mio sé OCD ha bisogno di un po 'più di controllo su cosa sta succedendo. Quindi, ho scritto uno script semplice che sceglie solo il primo suggerimento fornito da git. Si esegue lo script dopo il comando fallito e si utilizza la sintassi "bang bang" di sostituzione della cronologia bash incorporata. Inoltre, se stai digitando qualcosa che potrebbe avere più di un comando, questo comando ti consente di sceglierne uno diverso dalla prima opzione.

Sarebbe simile a questo,

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)

Inoltre, è divertente digitare qualsiasi cosa con due punti esclamativi. Quindi bonus per quello.

Ecco un succo con il mio copione


1
Ad essere onesti, però, la digitazione git pushè più veloce della digitazione idid !!. Ma in altri casi questo script sarebbe utile :)
theonlygusti

18

In alternativa a help.autocorrect: se fai sempre gli stessi errori di battitura, puoi creare alias per loro nel tuo file .gitconfig

[alias]
    puhs = push

(Lo faccio anche con gli alias della shell, dove non riesco mai a digitare mkae^H^H^H^Hmakecorrettamente.)


17

Dai anche un'occhiata a thefuck

Può correggere errori di battitura ed eseguire anche suggerimenti. Non solo limitato a git.


Uso fuckcommand da 2 anni ormai, è diventata una delle mie modifiche al terminale "non posso farne a meno" !!
Noah Sussman
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.