J'aime avoir le pager activé par git log
exemple, mais pas git diff
parce que j'ai mon propre outil de diff visuel qui apparaît, et je déteste devoir taper 'q' sur la ligne de commande une fois le diff terminé. Y a-t-il un moyen de faire cela?
J'aime avoir le pager activé par git log
exemple, mais pas git diff
parce que j'ai mon propre outil de diff visuel qui apparaît, et je déteste devoir taper 'q' sur la ligne de commande une fois le diff terminé. Y a-t-il un moyen de faire cela?
Réponses:
Vous pouvez définir la pager.diff
variable de configuration pour désactiver le pager pour des sous-commandes spécifiques. Voir pager.<cmd>
dans git-config (1) .
git config --global pager.diff false
Laissez-le --global
si vous souhaitez uniquement effectuer cette modification de configuration pour le référentiel actuel.
git -c pager.diff=false log ...
.
Pas une bonne solution, mais vous pourriez avoir un wrapper git qui détermine quelle commande vous exécutez et dirige la sortie via cat pour éliminer la détection de terminal.
#!/bin/sh
case "$1" in)
diff) git "$@" | cat;;
*) exec git "$@";;
esac
Bien sûr, mon programme d'exemple est entièrement braindead. Vous devrez ignorer les options au lieu de coder en dur "$ 1" dans le programme.