Existe-t-il un commutateur de ligne de commande à passer git diff
et d'autres commandes qui utilisent le less
pager par défaut?
Je sais que je peux le diriger vers cat, mais cela supprime toute la coloration syntaxique.
Je sais que je peux définir le pager dans le .gitconfig global sur cat by GITPAGER=cat
(ou quelque chose comme ça); mais je veux parfois avoir un téléavertisseur (selon la taille du diff).
Mais, je préférerais un commutateur de ligne de commande s'il y en a un; et je ne suis pas en mesure d'en trouver un, en parcourant les pages de manuel.
core.pager 'less -+F -+X'
serait un moyen plus récent de supprimer ces options. Voir ma réponse ci-dessous .less
avec git (cela varie selon laless
version): unix.stackexchange.com/questions/107315/…Réponses:
--no-pager
à Git lui dira de ne pas utiliser de téléavertisseur. Passer l'option-F
pour luiless
indiquera de ne pas paginer si la sortie tient dans un seul écran.Usage:
Les autres options des commentaires comprennent:
la source
core.pager
git config.-E
à vosless
options pour les rendre-F
utilisables.--no-pager
dans un alias, vous devez préfixe de commande, et d'éviter une erreur, vous devez faire un alias comme ceci:git config alias.foo '!git --no-pager foo'
. Un peu déroutant. Le simple aliasing'--no-pager foo'
ne fonctionnera pas.Comme mentionné dans une réponse précédente, la transmission de l'
-F
option à laless
fait se fermer si le contenu est inférieur à un écran. Cependant, après cela, l'écran est réinitialisé et vous finissez par ne pas voir le contenu.L'
-X
option supprime ce comportement. Donc, j'utilise ce qui suit pour activer la pagination conditionnelle en fonction de la quantité de contenu:la source
git config --global --add core.pager "less -F -X"
git1.8.0.2
, celui ci-dessus n'a pas fonctionné.export LESS="-RFX"
à votre.bashrc
ou.zshrc
-X
passe. Ne l'utilisez pas si vous n'aimez pas ça. Je l'aime parce que de cette façon, je peux me référer à des choses comme git SHA en regardant le résultat des commandes git précédentes dans mon historique sans avoir à taper à nouveau la commande. Chacun à sa façon.Utilisation
se débarrasser d'un pager pour toutes les commandes de tous les référentiels.
Vous pouvez également désactiver la pagination pour les sous-commandes Git uniques en utilisant
pager.<cmd>
setting au lieu decore.pager
, et vous pouvez modifier vos paramètres par référentiel Git (omis--global
).Voir
man git-config
et rechercherpager.<cmd>
des détails.la source
Les récents changements dans la documentation mentionnent une manière différente de supprimer une option par défaut pour
less
(les "options par défaut" étantFRSX
).Pour cette question, ce serait (git 1.8+)
Par exemple, Dirk Bester suggère dans les commentaires :
Wilson F mentionne dans les commentaires et dans sa question que:
Ces modifications étaient déjà visibles dans git 1.8.x, comme illustré dans " Toujours utiliser le pager pour
git diff
" (voir les commentaires). Mais la documentation vient d'être reformulée ( pour git 1.8.5 ou 1.9, Q4 2013 ).Voir commit 97d01f2a pour la raison de la nouvelle formulation de la documentation:
config: réécrire la
core.pager
documentationRemarque: commit b327583 ( Matthieu Moy
moy
, avril 2014, pour git 2.0.x / 2.1, Q3 2014) supprimera le S par défaut:pager: supprimer "S" de $ LESS par défaut
La documentation se lira:
la source
Vous pouvez également désactiver / activer les pagers pour des sorties spécifiques dans la configuration globale:
Ou pour définir l'option core.pager, fournissez simplement une chaîne vide:
C'est mieux à mon avis que de le régler
cat
comme vous le dites.la source
git version 2.5.4 (Apple Git-61)
git diff
qu'il fonctionne pour d'autres commandescode "$($env:UserProfile)\.gitconfig"
et ajouter manuellementpager =
sous les[core]
paramètres. La réponse a fonctionné pour ma session PowerShell actuelle, mais ne semble pas enregistrer le paramètre n'importe où, donc il était efficace lors du prochain lancement.Concernant la couleur désactivée lors de la tuyauterie:
Utilisez
--color
pour éviter que la coloration soit désactivée.git diff --color | less -R
Ou configurez-le forcé (par exemple .gitconfig):
git diff | less -R
Pour les outils non colorés, utilisez alors:
git diff --no-color | some-primitive-tool
L'exportation de la variable d'environnement
LESS=-R
(par exemple .bashrc) active la prise en charge des couleurs par défaut dans "moins":git diff | less
la source
LESS
variable d'environnementFRSX
lors de l'appel du pager, s'il n'est pas défini.Cela a fonctionné pour moi avec Git version 2.1.4 sur Linux:
Cela fait utiliser Git à la
cat
place deless
.cat
vide simplement la sortie dediff
l'écran sans pagination.la source
Vous pouvez ajouter un alias à diff avec son propre pager avec pager.alias, comme ceci:
Cela gardera la couleur et utilisera 'cat' comme pager lorsqu'il sera invoqué à 'git dc'.
Aussi, les choses à ne pas faire:
--no-pager
dans votre alias. Git (1.8.5.2, Apple Git-48) se plaindra que vous essayez de modifier l'environnement.!sh
ou!git
. Cela contournera l'erreur d'environnement ci-dessus, mais cela réinitialisera votre répertoire de travail (aux fins de cette commande) dans le répertoire Git de niveau supérieur, de sorte que toute référence à un fichier local ne fonctionnera pas si vous êtes déjà dans un sous-répertoire de votre référentiel.la source
git log
mais pasgit log --oneline
. Utilisezpager.log = less -FXR +/^commit.*
, en cas spécial, l'--oneline
option avecalias.l1 = log --oneline
etpager.l1 = less -FXR
.J'ai ce morceau dans mon
.gitconfig
et il semble bien fonctionner (désactivé pour diff et show):la source
J'aime désactiver la pagination de temps en temps, quand je sais que la sortie n'est pas très longue. Pour cela, j'ai trouvé une astuce en utilisant des alias Git:
Ou ajoutez ce qui suit à la
[alias]
section ~ / .gitconfig:Cela signifie que vous pouvez utiliser le préfixe
n
pour désactiver la pagination pour n'importe quelle commande Git, c'est-à-dire:la source
Pour un script rapide et sale que j'ai écrit, je l'ai fait de cette façon:
la source
$GIT_PAGER
est défini.git --no-pager
fait de même mais de manière plus fiable.Comme il est dit sur man git , vous pouvez utiliser
--no-pager
n'importe quelle commande.Je l'utilise sur:
Utilisez ensuite un alias pour éviter d'utiliser (et de vous souvenir) des commandes longues.
la source
Pour Windows, c'est:
Cela désactivera la pagination pour tout
git
, y compris le super ennuyeuxgit branch
.la source
Si vous utilisez oh-my-zsh, dans le
~/.oh-my-zsh/lib/misc.zsh
fichier, commentez cette ligne:la source
unset LESS
à la fin du .zshrc.Par défaut, git uses utilise moins comme pager. Je préfère normalement plus, car il imprimera la première page et vous permettra ensuite de faire défiler le contenu.
De plus, le contenu restera dans la console une fois terminé. Ceci est généralement pratique, car vous voulez souvent faire quelque chose avec le contenu après la recherche (par exemple, envoyer un e-mail au responsable et lui dire qu'il a introduit un bogue dans son dernier commit).
Si vous souhaitez ensuite canaliser le contenu, il serait gênant de faire défiler pour tout imprimer. La bonne chose avec plus est que vous serez en mesure de le combiner avec un pipeline et il sera tout au long, par exemple.
Fondamentalement, c'est tout ce dont vous auriez besoin, sauf si vous ne voulez pas que le contenu reste dans la console une fois terminé. Pour en utiliser davantage, procédez comme suit.
la source
Ou
--no-pager
.BTW: Pour conserver la couleur avec le chat
la source
Suivez simplement les instructions ci-dessous.
vi ~/.gitconfig
votre terminal.LESS="-F -X $LESS"
ligne.:wq
et entrez.la source