¿Por qué tengo que presionar 'Q' al final de 'git log'?

79

Considerar:

git log -n 20 --pretty=oneline

Le estoy diciendo a Git que necesito ver solo las últimas 20 confirmaciones. Odio golpear Qpara deshacerme de END. ¿Hay alguna salida para no tener que golpear Q?

Nick Vanderbilt
fuente

Respuestas:

83

Git automáticamente pagina la salida por usted, ya que los registros tienden a desbordar fácilmente el tamaño de una sola ventana de terminal (se encuentra en una de las raras excepciones: un formato en línea y un pequeño límite de confirmación). Si no quieres esto, usa:

git --no-pager log -n 20 --pretty=oneline

Tenga en cuenta que esto significa que obtendrá un ajuste feo, porque el buscapersonas estaba desactivando el ajuste previamente para usted (ya que podía usar las teclas del cursor para desplazarse de izquierda a derecha).

Cascabel
fuente
4
@DeckTrout Sin ninguna información, nadie puede ayudarlo. Si puede ser específico sobre su configuración, puede intentar hacer una nueva pregunta. Esta respuesta funcionó para el OP aquí (y para muchos otros), así que claramente algo es diferente para usted.
Cascabel
1
Añadir l = !git --no-pager log -n 20 --pretty=onelineen .gitconfigcrear un alias ..
saveshodhan
En Git para Windows, esto altera el resaltado de "cometer insert-hash-here" de naranja a amarillo.
Unknow0059
26

Puede "desactivar" la paginación de git diciéndole que use cat en lugar de less. A partir de entonces, canalice la salida a través de menos cuando desee paginación, o diríjase si solo desea ver la parte superior, etc.

git config --global core.pager cat

Apago la paginación automática porque a menudo ejecuto git desde emacs, que ni necesita ni funciona bien con menos.

Wayne Conrad
fuente
Mi registro de git no termina con una nueva línea, por lo que el indicador de shell que sigue al registro está en la misma línea que mi confirmación más antigua. No obstante, buen consejo, gracias.
Kenny Rasschaert
13

lessacepta -Fargumentos para salir automáticamente si el contenido cabe en una pantalla

hasen
fuente
8

git log -n 20 --pretty=oneline | cat

es un poco más corto que la --no-pageropción, pero también eliminará los colores presentes.

Debilski
fuente
8

Si desea usar --no-pagerun alias, configure su alias de esta manera:

hist = !git --no-pager log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
Aleksandr Zonov
fuente
0

La q se usa para cerrar el programa de línea de comando que se usa para ver los registros ...

Puede usar otro visor de registros, como gitk:

gitk -n 20
Ahmed Kotb
fuente
gitk es útil para ver gráficos, etc. Estaba buscando una solución ligera. Gracias.
Nick Vanderbilt
0

Alias ​​para un comando de registro en el que no tiene que hacer clic qpara que desaparezca:

git config --global alias.hist '!git --no-pager log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short --max-count=10'
Pylinux
fuente