Domanda

Sto eseguendo git-diff su un file, ma la modifica è alla fine di una lunga fila.

Se uso i tasti cursore per spostarmi a destra, perde la codifica a colori e, peggio ancora, le linee non si allineano, rendendo più difficile tenere traccia delle modifiche.

C'è un modo per prevenire quel problema, o semplicemente per fare il wrapping delle linee invece?

(eseguendo git 1.5.5 tramite mingw32)

È stato utile?

Soluzione

La visualizzazione dell'output di git diff è gestita da qualunque cercapersone che stai utilizzando.

Comunemente, sotto Linux, verrebbe utilizzato less .

Puoi dire a git di usare un altro cercapersone impostando la variabile d'ambiente GIT_PAGER . Se non ti dispiace per il paging (ad esempio, il tuo terminale ti consente di scorrere indietro) potresti provare esplicitamente a impostare GIT_PAGER su vuoto per fermarlo usando un cercapersone. Sotto Linux:

$ GIT_PAGER='' git diff

Senza un cercapersone, le linee andranno a capo.

Se il tuo terminale non supporta l'output colorato, puoi anche disattivarlo usando l'argomento --no-color o inserendo una voce nella sezione colore del tuo file di configurazione git.

$ GIT_PAGER='' git diff --no-color

Altri suggerimenti

O se usi meno come cercapersone predefinito, digita -S mentre visualizzi il diff per riattivare il wrapping in less.

Puoi anche usare git config per impostare il pager da avvolgere.

$ git config core.pager 'less -r' 

Imposta l'impostazione del cercapersone per il progetto corrente.

$ git config --global core.pager 'less -r' 

Imposta il cercapersone a livello globale per tutti i progetti

Per usare meno come cercapersone e rendere permanente il ritorno a capo, puoi semplicemente abilitare l'opzione piega linee lunghe:

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

In questo modo non è necessario digitarlo mentre si utilizza meno.

Saluti

Ho appena cercato su Google. GIT_PAGER = 'less -r' funziona per me

Mac OSX: nessuna delle altre risposte, tranne '-S' di qualcuno45 mentre è in esecuzione, ha funzionato per me. Ci sono voluti i seguenti per rendere persistente il ritorno a capo automatico:

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

Da Git 1.5.3 ( set 2007 )

è stata disponibile un'opzione --no-pager .

git --no-pager diff

Come posso impedire a git diff di utilizzare un cercapersone?

Esempio

A partire da v2.1, wrap è l'impostazione predefinita

Rilascio Git v2.1 Note

Otto anni dopo trovo una risposta superiore, da https://superuser.com/questions/777617/line-wrapping-less-in-os-x-specifically-for-use-with-git-diff :

git config core.pager `fold -w 80 | less`

Ora installi git diff attraverso fold, prima, poi a less: avvolto, meno l'altezza della pagina è corretta, mantieni l'evidenziazione della sintassi.

Potresti semplicemente reindirizzare l'output di git diff su more:

git diff | more

Non è una soluzione perfetta, ma gitk e git-gui possono entrambi mostrare queste informazioni, e hanno barre di scorrimento.

Quando stai utilizzando " git diff " e mostra diverse pagine (vedi ": " alla fine della pagina) in questo caso puoi digitare " -S " e premi Invio. (S dovrebbe essere maiuscola). alternerà le linee lunghe.

Nessuno lo ha sottolineato fino ad ora. È abbastanza semplice da ricordare e non è necessario eseguire alcuna configurazione aggiuntiva in git config

git diff --color | less -R

elenca la configurazione corrente / predefinita:

  $ git config --global core.pager  
    less -FXRS -x2

quindi aggiorna ed escludi -S come:

  $ git config --global core.pager 'less -FXR -x2'

la -S: fa sì che le linee più lunghe della larghezza dello schermo vengano troncate anziché piegate.

Quando sono nei guai, spesso ricorro a DiffMerge. Eccellente strumento diff con evidenziazione diff in linea. Inoltre, nelle ultime versioni hanno aggiunto una modalità per avere una modalità orizzontale.

Non sono stato in grado di configurare git per usarlo, però. Quindi devo andare in giro per ottenere prima entrambe le versioni del file.

Il modo più semplice per farlo, nel mio caso uso Linux os

git diff > text.txt

Questa riga di comando crea e inserisce l'output git diff all'interno di text.txt quindi puoi aprirlo con un altro editor di testo, ad esempio testo sublime.

sublime text.txt

Spero che ti aiuti.

non dimenticare di cancellarlo dopo. = 0)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top