Par défaut les commandes git rendent leur résultat dans un pager, less par défaut.
C’est pratique pour les commandes comme « git log » sans limites. Mais pour permettre de voir un historique limité qui rende la main sur le terminal, il faut spécifier « –no-pager » qui est une option de git pas de git log :
git --no-pager log --oneline -n 8
Attention pour créer un alias git qui ajoute cette option il faut spécifier la commande complète via ! :
lnp = !git --no-pager log --oneline -n 8
Voir plus : https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
À noter que, par défaut, git utilise les options -FRX de less. -F dit à less de se terminer automatiquement si la sortie peut être affichée sur un seul écran.
Donc –no-pager n’est normalement pas utile dans cette config (à part si ton terminal fait moins de 8 lignes de haut).
Mais sur nos serveurs, la variable d’environnement LESS est définie à « -R », ce qui empêche git d’utiliser ces options par défaut.
Donc plutôt que d’utiliser des alias pour toutes les commandes git qui utilisent un pager, unset LESS ou export LESS=-FRX
Autres options: https://git-scm.com/docs/git-config#git-config-corepager
Ah super merci pour ces infos, je ne comprenais pas pourquoi c’était différent entre mon poste et sur nos serveurs.
Quelques infos sur le ! dans les alias git:
https://unix.stackexchange.com/questions/47275/how-does-this-git-alias-work
lnp = !git –no-pager log –oneline -n 8
Ah non en fait je déconseille car cela ne permet pas d’avoir plus d’arguments. Par exemple spécifier un fichiers :
git lnp file.pl
On peut ajouter des arguments, mais
Donc si on lance cette commande depuis un sous-répertoire, ça n’a pas forcément le comportement attendu