182 votes

Comment faire en sorte que le journal git ne demande pas de continuer ?

J'ai quelques dépôts git qui vont ensemble, et un simple fichier batch/bash pour les parcourir en boucle. Je les parcours souvent avec une commande log pour voir rapidement dans quel état ils sont. Cela fonctionne bien, sauf pour une chose : si le message de commit est plus long que le nombre de caractères de ma console (ou a plusieurs lignes), git affiche la ligne, puis une nouvelle ligne avec (END) et je dois appuyer sur q pour continuer (je suppose qu'il achemine la sortie par l'intermédiaire de plus ou quelque chose comme ça). Exemple :

> gitloop . "git log --decorate=short --pretty=oneline -n1"
18629ae238e9d5832cb3535ec88274173337a501 (HEAD, origin/master, master) short log

625fb891b9b0b8648459b07ace662ae3b7773c7f (HEAD, origin/master, origin/HEAD, master) short log

dc0838118266ba8570ea338c1faddfe8af0387bb (HEAD, origin/work, origin/master, work, master) oops loooooooooooooong log
-(END)

Cela n'est pas très pratique, car je dois appuyer sur q alors que j'aimerais voir tous ces oneliners en une seule fois.

Comment puis-je désactiver ce comportement (de préférence en conservant le format du journal) ?

3voto

Bien que les réponses ci-dessus soient probablement correctes, j'aimerais ajouter celle qui me convient le mieux. Je recommande de configurer less au lieu de git en ajoutant les drapeaux suivants :

export LESS="${LESS:+$LESS }-X -F"

-X  Disables sending the termcap initialization and deinitialization strings to the terminal.
-F or --quit-if-one-screen -> no need to press `q` if output fits into the current terminal size.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X