usar tipos tag sirve repositorio qué podemos partir para otro oneline nuevo nos log hace existen etiquetas eliminar cuando crear creamos git pager git-stash

tipos - ¿qué hace git log-oneline?



Desactivar el buscapersonas en git solo para el comando de ocultación (4)

A partir de 1.7.7.3, git config --global pager.stash false logra esto.

Por lo general, me gusta el uso del buscapersonas en git, pero para git stash el localizador me molesta. Al llamar a la git stash list , no quiero que me muestren las tres líneas de salida en el buscapersonas; me obliga a presionar q solo para que la salida no vuelva a estar disponible al escribir el siguiente comando de git stash pop .

Una solución sería utilizar

git --no-pager stash list

Pero eso es mucho escribir (soy perezoso). Siguiendo la página man de git config , lo intenté.

git config --global pager.stash false

pero esto no parece hacer lo que dice la documentación (en realidad, no noté ningún efecto). Entonces lo intenté

git config --global alias.stash "--no-pager stash"

De nuevo sin ningún efecto notable.

La configuración se actualiza correctamente, por ejemplo.

git config pager.stash false

Simplemente no tiene ningún efecto. ¿Qué me estoy perdiendo? ¿Y cómo puedo lograr que el git stash no use el buscapersonas?


Alternativamente, puede configurar less para salir si hay menos de una pantalla de salida:

export LESS=''-F''

O, verbalmente:

export LESS=''--quit-if-one-screen''

Si tiene colores en su salida de git, probablemente también querrá pasar la -r :

export LESS=''-F -r''


Parece un alijo, y cualquier otro comando no incorporado (escrito como un script de shell, en lugar de en C) se pierde en el paso de configuración del buscapersonas. Envié una nota a la lista de correo de git preguntando sobre esto; Parece que es un problema conocido, pero no es totalmente trivial de solucionar.

La razón principal por la que no ve ningún efecto en su alias es que git ignora silenciosamente los alias para los comandos incorporados; la idea es que nunca se desea que un comando sea inaccesible. Para que el alias tenga la oportunidad de ejecutarse, debe asignarle un nombre diferente al de stash .

Sin embargo, creo que no se permite que los alias simples afecten el entorno en el que se ejecuta un comando git, que generalmente incluye las opciones pasadas al propio git . Si utilizo un alias como el tuyo:

git config alias.foo --no-pager stash git foo fatal: alias ''foo'' changes environment variables

Si quieres hacerlo correctamente, deberías usar !git --no-pager stash , para que genere una subshell y vuelva a invocar git.

Otra solución temporal, ya que es un script de shell, sería ir a editar libexec/git-core/git-stash directamente. Simplemente vaya a buscar la función list_stash y agregue la --no-pager a su llamada a git log , o para cubrir todo el script, establezca GIT_PAGER=cat en la parte superior.


stll = "!git --no-pager stash list"

es tu amigo.