¿Cómo puedo hacer que git haga la sugerencia de "quiso decir"?

120

yo tecleo

git puhs

Y git dice:

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

Did you mean this?
      push

¿Cuál es la configuración de configuración para que git simplemente haga el comando sugerido si solo tiene una sugerencia?

krosenvold
fuente

Respuestas:

150

De acuerdo con git-config (1) , desea configurar help.autocorrectadecuadamente. Por ejemplo, git config --global help.autocorrect 5lo hará esperar medio segundo antes de ejecutar el comando para que pueda ver el mensaje primero.

jamessan
fuente
27
Si lo configura en un número negativo, lo hace directamente.
Alper
8
¿Hay alguna forma de hacer que git le solicite antes de corregir, similar a zsh? (p. ej., "corregir 'puhs' para 'empujar' [yn]?")
Achal Dave
4
@AchalDave Probablemente lo haya, si escribe el código para hacer eso y envía el parche / rama a la gitgente para que lo acepte en la base del código. Actualmente, no funciona de esa manera ...
twalberg
1
Esto parece funcionar si hay exactamente un comando candidato. Por ejemplo, git statno hace nada incluso después de usar su sugerencia porque tiene varios candidatos. ¿Alguna sugerencia de cómo hacer que elija el primero?
gokul_uf
25

La autocorrección es buena, pero mi TOC necesita un poco más de control sobre lo que está sucediendo. Entonces, escribí un guión sencillo que solo elige la primera sugerencia proporcionada por git. Ejecuta el script después del comando fallido y usa la sintaxis incorporada de sustitución del historial de bash "bang bang". Además, si está escribiendo algo que posiblemente podría tener más de un comando, este comando le permite elegir una opción diferente a la primera.

Se vería algo como esto,

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)

Además, es divertido escribir cualquier cosa con dos signos de exclamación. Así que bonificación por eso.

Aquí hay una esencia con mi guión

Ben
fuente
1
Sin embargo, para ser honesto, escribir git pushes más rápido que escribir idid !!. Pero en otros casos, este script sería útil :)
theonlygusti
18

Como alternativa a help.autocorrect: si comete los mismos errores tipográficos todo el tiempo, puede crear alias para ellos en su archivo .gitconfig

[alias]
    puhs = push

(También hago esto con alias de shell, donde parece que nunca puedo escribir mkae^H^H^H^Hmakecorrectamente).

bstpierre
fuente
17

También echa un vistazo a thefuck

Puede corregir errores tipográficos y también realizar sugerencias. No solo se limita a git.

manojlds
fuente
He estado usando el fuckcomando durante 2 años, ¡se ha convertido en una de mis modificaciones de terminal "no puedo vivir sin él"!
Noah Sussman