Estoy usando Zsh yy tratando de ejecutar git show para un proyecto para ver mi historial de revisión. Si lo hago
git show HEAD
funciona bien mostrándome mi última confirmación, sin embargo, los siguientes commands no funcionan
[master↑5⚡]:~/project $ git show HEAD^ zsh: no matches found: HEAD^ [master↑5⚡]:~/project $ git show HEAD^^ zsh: no matches found: HEAD^^
Sin embargo, esto funciona
git HEAD~1
¿Estoy haciendo algo mal aquí con git show HEAD^^
?
git versión 1.7.4.5
El quilate ( ^
) tiene un significado especial en Bash y Zsh.
Tendrá que escaping o citarlo:
% git show HEAD\^ % git show 'HEAD^^'
En lugar de escapingse o citar el símbolo de intercalación, podría decirle a zsh
que deje de achicar el command cuando no coincida con un patrón global. Pon esta opción en tu .zshrc
:
setopt NO_NOMATCH
Esa opción evita que zsh
aborte los commands si falla el emparejamiento global. git show HEAD^
funcionará correctamente, y no es necesario que te salgas del caret. Además, globbing y el ^
designador de events seguirán funcionando de la manera esperada.
Para responder la pregunta de dolzenko en los comentarios, puedes get git log ^production master
(que es, casualmente, también exactamente lo que hace la syntax de 'doble punto' de git log production..master
: git log production..master
) al inhabilitar el globbing extendido:
setopt NO_EXTENDED_GLOB
Por supuesto, puede que realmente confíe en globbing extendido y no lo sepa. Recomiendo leer sobre lo que hace antes de desactivarlo.
También puedes usar noglob.
% noglob git show HEAD^
(o noglob git
un alias para noglob git
)