2012-09-10 7 views
27

Sto usando less come il mio cercapersone git.Usa sempre il cercapersone per git diff

Se l'uscita del git diff è leggibile su una pagina, la mia git stampa l'output sullo schermo. A volte sono troppo veloce a digitare Ctrl+D (mezza pagina in basso), che uccide il mio terminale. C'è un'opzione per abilitare il cercapersone per git diff, anche se l'uscita è molto piccola?

non funziona:

  • git -p diff
  • git --paginate diff
  • git impostazioni: pager.diff = true

risposta

38

Questo è controllato dall'opzione -F (--quit-if-one-screen) a meno.

Git utilizza le opzioni FRSX per/di meno per impostazione predefinita, se nessuna è specificata dalle variabili di ambiente $LESS o $GIT_PAGER. Per cambiarlo, specificare l'opzione core.pager e impostarlo RSX:

git config --global core.pager 'less -+F' 

più vecchie versioni di Git utilizzati per raccomandare il seguente nella loro documentazione:

git config --global core.pager 'less -+$LESS -RSX' 
+0

git non usa FRSX di default . Ho il sospetto che tu stia ottenendo quelle impostazioni predefinite dalla variabile di ambiente 'LESS', o da' GIT_PAGER', che suggerisce un'altra soluzione (semplicissima). Vale a dire, assicurati che 'F' non appaia in' LESS' o in 'GIT_PAGER'. Se git usa i valori di default quando PAGER e GIT_PAGER non sono impostati, questo mi sorprenderebbe, ma forse mi sbaglio. Documentazione? –

+1

@WilliamPursell: la Documentazione Git è stata recentemente aggiornata per disabilitare le opzioni in un modo più compatibile con le versioni precedenti. Il mio codice è stato copiato direttamente dalla (man) vecchia pagina - l'ho aggiornato ora. La documentazione scrive anche »Git imposta la variabile LESS su FSRX se non è impostata« – knittl

+0

@knittl puoi dare un riferimento al documento? grazie – Leonmax