886 votes

Comment puis-je empêcher git diff de l'aide d'un téléavertisseur?

Est-il un commutateur de ligne de commande pour passer à l' git diff et d'autres commandes qui utilisent l' less pager par défaut?

Je sais que je peux pipe à chat, mais qui supprime tous les de la syntaxe.

Je sais que je peux définir le pager dans le monde .gitconfig de chat en GITPAGER=cat (ou quelque chose comme ça); mais je veux avoir pager parfois (selon la taille de l'diff).

Mais, je préfère un commutateur de ligne de commande si il y en a un; et je ne suis pas capable d'en trouver un, en passant par les pages man.

995voto

Ignacio Vazquez-Abrams Points 312628

--no-pager git lui dira de ne pas utiliser un pager. -F à moins de vous le dirons pas la page si la sortie s'inscrit dans un seul écran.

Utilisation:

git --no-pager diff

376voto

ishaaq Points 1200

Comme une réponse précédente mentionné, en passant de l' -F option à moins qu'il provoque, de cesser de fumer si le contenu est inférieur à un écran, mais après cela, l'écran est remise à zéro et on finit par ne plus voir le contenu, l' -X option n'loin avec ce comportement. Donc, j'ai utiliser les options suivantes pour activer conditionnelle de pagination sur la base du montant de contenu:

git config --global --replace-all core.pager "less -F -X"

237voto

geekQ Points 8796

Utilisation

git config --global core.pager cat

pour se débarrasser de radiomessagerie pour toutes les commandes pour tous les référentiels.

Vous pouvez également désactiver la pagination pour unique git sous-commandes en utilisant pager.<cmd> paramètre à la place de core.pager et vous pouvez modifier vos paramètres par dépôt git (omettre --global).

Voir man git-config et de recherche pour l' pager.<cmd> pour plus de détails.

95voto

mtahmed Points 1252

Vous pouvez désactiver/activer les récepteurs pour des résultats spécifiques mondiale config:

git config --global pager.diff false

C'est mieux, à mon avis, plutôt qu'à l' cat comme vous le dites.

79voto

VonC Points 414372

Les changements récents dans la documentation de mentionner une autre façon de supprimer l'option par défaut de less ("options par défaut" cours de FRSX).

Pour cette question, ce serait git (1.8+)

git config --global --replace-all core.pager 'less -+F -+X'

Ces modifications sont déjà visibles dans git 1.8.x, comme illustré dans "Toujours utiliser le pager pour git diff" (voir les commentaires). Mais la documentation viens de reformuler (git 1.8.5 ou à 1,9% pour le T4 2013).

Visionneuse de texte pour une utilisation par les commandes Git (par exemple, "moins de").
La valeur est destiné à être interprété par le shell.

L'ordre de préférence est:

  • l' $GIT_PAGER variable d'environnement,
  • ensuite, core.pager configuration,
  • ensuite, $PAGER,
  • et puis la valeur par défaut choisi au moment de la compilation (généralement 'moins').

Lorsque l' LESS variable d'environnement n'est pas définie, Git définit FRSX
(si LESS variable d'environnement est définie, Git ne pas changer).

Si vous souhaitez remplacer de façon sélective Git paramétrage par défaut LESS, vous pouvez configurer core.pager , par exemple less -+S.
Ce sera transmise à la coque par Git, qui va traduire la commande finale pour LESS=FRSX less -+S. L'environnement indique à la commande pour définir l' S option pour couper les lignes trop longues, mais la ligne de commande réinitialise à la valeur par défaut pour plier le long des lignes.


Voir commettre 97d01f2a pour la raison derrière la nouvelle documentation libellé:

config: réécrire core.pager documentation

Le texte mentionne core.pager et GIT_PAGER sans donner l'image de l'ensemble de priorités. Emprunter une meilleure description de l' git var(1) de la documentation.

L'utilisation du mécanisme pour permettre à l'échelle du système, globales et par le référentiel de fichiers de configuration n'est pas limitée à cette variable. Supprimer pour clarifier le paragraphe.

La réécriture de la partie qui explique comment la variable d'environnement LESS est fixé à Git de la valeur par défaut, et comment de façon sélective le personnaliser.


Remarque: s'engager b327583 (Matthieu Moy moy, en avril 2014, pour git 2.0.x/2.1, T3 2014) va supprimer le S par défaut:

pager: supprimer le " S " à partir de $de MOINS par défaut

Par défaut, Git utilisé pour fixer $LESS de -FRSX si $LESS n'a pas été définie par l'utilisateur.
L' FRX drapeaux effectivement un sens pour Git (F et X parce que parfois, la sortie Git tuyaux pour moins est court, et R parce que Git tuyaux de couleur de sortie).
L' S drapeau (chop longues lignes), d'autre part, n'est pas liée à Git et est une question de préférence de l'utilisateur. Git ne doit pas décider pour l'utilisateur de modifier LESS'par défaut.

Plus précisément, l' S drapeau nuit utilisateurs qui revue de code non sécurisé au sein d'un pager, depuis un patch qui ressemble à:

-old code;
+new good code; [... lots of tabs ...] malicious code;

semble identique à:

-old code;
+new good code;

Les utilisateurs qui préfèrent l'ancien comportement peut toujours régler l' $de MOINS variable d'environnement -FRSX explicitement, ou un ensemble de base.pager 'less -S'.

La documentation va lire:

L'environnement ne permet pas de définir l' S option, mais la ligne de commande ne, demandant moins de tronquer les longues lignes.
De même, le paramètre core.pager de less -+F désactivera l' F option spécifiée par l'environnement à partir de la ligne de commande, le fait de désactiver le "quit if one screen" le comportement de l' less.
On peut activer spécifiquement certains drapeaux pour certaines commandes: par exemple, la définition pager.blame de less -S permet à la ligne de troncature seulement pour git blame.

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