Par défaut, git diff
imprime toutes les +-
lignes sur la sortie standard, mais j'ai une machine (devian) (que je connecte via ssh) où git diff
me conduit à un éditeur (dont je ne sais pas lequel est) et je dois appuyer sur qpour continuer.
J'ai checker git config et ça ressemble à:
$ git config --list
user.name=XXX
user.email=XXX@XXX
color.ui=false
difftool.prompt=false
mergetool.prompt=false
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=XXX
branch.master.remote=origin
branch.master.merge=refs/heads/master
$ git config --global --list
user.name=XXX
user.email=XXX@XXX
color.ui=false
difftool.prompt=false
mergetool.prompt=false
$ git config --system --list
'/etc/gitconfig': No such file or directory
Y a-t-il un endroit qui me manque? Peut-être que l'outil inconnu est une solution de secours ou quelque chose parce que je manque quelque chose à ma machine? Toute aide est appréciée. Merci.
Réponses:
Par défaut, Git envoie sa sortie diff (et généralement toute sortie qui peut être plus qu'un écran) au pager du système , qui est un utilitaire qui n'imprime qu'un seul écran de sortie à la fois. Si vous souhaitez désactiver le pager lorsque vous exécutez une commande, passez
--no-pager
à Git:Cela peut être exécuté pour n'importe quelle commande Git.
Si vous souhaitez le désactiver par défaut pour diff uniquement , vous pouvez définir le pager de diff
cat
en exécutant:Si vous souhaitez le désactiver par défaut pour toutes les commandes , vous pouvez définir le pager Git
cat
en exécutant:la source
git config --global core.pager cat
l'a fait!. Merci :)git
( pas à la sous-commande)?git branch
, par exemplegit config pager.branch false
La
core.pager
valeur suivante utiliseless
, qui imprime sur stdout, et possède également une fonctionnalité de pagineur (si nécessaire), permettant le défilement vers le haut et vers le bas (contrairement àcat
):Il se ferme immédiatement si le diff tient sur le premier écran (
-F
), génère des caractères de contrôle bruts (-R
), coupe les longues lignes plutôt que wrapping (-S
), et n'utilise pas les chaînes termcap init / deinit (-X
).la source
Vous pouvez également simplement utiliser
cat
pour n'importe quellegit
commande si vous ne vous souciez pas des couleurs.Donc
git diff | cat
pour votre cas.Edit: comme indiqué dans les commentaires si vous vous souciez des couleurs, utilisez:
git diff --color | cat
la source
git diff --color | cat
(: