A partire da git
v1.7.11, è possibile utilizzare git difftool --dir-diff
per eseguire una directory diff.
Questa funzionalità funziona bene con Meld 3.14.2 per esempio e consente di sfogliare tutti i file modificati:
git difftool --dir-diff --tool=meld HEAD~ HEAD
Questa è una pratica funzione Bash:
git-diff-meld() (
git difftool --dir-diff --tool=meld "${1:-HEAD~}" "${2:-HEAD}"
)
La risposta che segue si applica alle git
installazioni precedenti alla v1.7.11.
La stessa domanda è stata posta nella mailing list di git .
Ho messo insieme uno script di shell basato su quel thread e-mail che esegue una directory diff tra commit arbitrari.
A partire da git v1.7.10, lo git-diffall
script è incluso contrib
nell'installazione standard di git.
Per le versioni precedenti alla v1.7.10, è possibile installare dal git-diffall
progetto su GitHub .
Ecco la descrizione del progetto:
Lo script git-diffall fornisce un meccanismo diff basato su directory per git. Lo script si basa sull'opzione di configurazione diff.tool per determinare quale visualizzatore diff viene utilizzato.
Questo script è compatibile con tutti i moduli utilizzati per specificare una serie di revisioni per diff:
1) git diffall
: mostra la differenza tra l'albero di lavoro e le modifiche in scena
2) git diffall --cached [<commit>]
: mostra la differenza tra le modifiche in scena e HEAD
(o altri commit con nome)
3) git diffall <commit>
: mostra la differenza tra l'albero di lavoro e il commit con nome
4) git diffall <commit> <commit>
: mostra la differenza tra due commit con nome
5) git diffall <commit>..<commit>
: stesso come sopra
6) git diffall <commit>...<commit>
: mostra le modifiche sul ramo contenente e fino al secondo, a partire da un antenato comune di entrambi<commit>
Nota: tutti i moduli hanno un limitatore di percorso opzionale [--] [<path>]
Questo script si basa su un esempio fornito da Thomas Rast nell'elenco Git .