Git: mostra più contesto quando si usa git add -i o git add -e?


101

Sto impegnando in modo selettivo parti di un file di grandi dimensioni e mi piacerebbe vedere più contesto attorno a ogni pezzo. È possibile?

Risposte:


130

Risposta breve: no.

git diffha l' -U<n>opzione che ti permette di personalizzare il numero di righe da mostrare intorno a una modifica. Ad esempio, git diff -U5 ...mostrerà 5 righe di contesto. Per quanto ne so, non esiste tale opzione disponibile per la visualizzazione delle differenze nella modalità interattiva.


7
C'è -U<infinity>un'opzione per mostrare l'intero file? (O un numero elevato è "abbastanza buono"?)
titaniumdecoy

2
Vorrei menzionare che il numero in git diff -U<n>viene utilizzato su entrambi i lati di ogni riga modificata. Quindi, se hai una riga modificata, git diff -U5ti mostrerà 11 righe (supponendo che una riga non sia all'inizio della fine del file).
ArtOfWarfare

5
Questo è per git diffnon per git add --patchogit add --interactive
0xcaff

1
@titaniumdecoy, ho postato che come una questione separata stackoverflow.com/questions/28727424/...
Aleksandr Levchuk

3
Ancora nessuna soluzione?
Vitaly Zdanevich

2

A conferma, questo non è ancora possibile nel 2019.

Uno strumento esterno come jjlee/git-meld-indexpuò aiutare:

git-meld-indexcorre meld- o qualsiasi altro difftool git ( kdiff3, diffuse, etc.) - per permettere che i cambiamenti di scena in modo interattivo per l'indice git (noto anche come area di sosta git).

Questo è simile alla funzionalità di git add -p, e git add --interactive.

In alcuni casi la fusione è più facile / veloce da usare rispetto git add -pao la funzionalità di staging in strumenti come git gui.
Questo perché la combinazione ti consente, ad esempio, di:

  • vedere più contesto ,
  • vedere diff intra-line
  • modifica a mano e guarda gli aggiornamenti diff 'live' (aggiornati dopo ogni pressione di un tasto)
  • vai a una modifica senza dire " n" a ogni modifica che desideri saltare
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.