Począwszy od wersji git
1.7.11, można użyć git difftool --dir-diff
do wykonania różnic katalogu.
Ta funkcja działa dobrze na przykład w Meld 3.14.2 i umożliwia przeglądanie wszystkich zmodyfikowanych plików:
git difftool --dir-diff --tool=meld HEAD~ HEAD
Jest to przydatna funkcja Bash:
git-diff-meld() (
git difftool --dir-diff --tool=meld "${1:-HEAD~}" "${2:-HEAD}"
)
Poniższa odpowiedź dotyczy git
instalacji starszych niż 1.7.7.
To samo pytanie zostało zadane na liście mailowej git .
Złożyłem skrypt powłoki oparty na tym wątku e-mail, który wykonuje różnicę katalogów między dowolnymi zatwierdzeniami.
Począwszy od git 1.7.7, git-diffall
skrypt jest dołączony contrib
do standardowej instalacji git.
W przypadku wersji wcześniejszych niż 1.7.7 można zainstalować z git-diffall
projektu na GitHub .
Oto opis projektu:
Skrypt git-diffall udostępnia oparty na katalogu mechanizm różnic dla git. Skrypt korzysta z opcji konfiguracyjnej diff.tool, aby określić, która przeglądarka różnic jest używana.
Ten skrypt jest zgodny ze wszystkimi formularzami używanymi do określania zakresu poprawek do różnic:
1) git diffall
: pokazuje różnicę między działającym drzewem a zmianami etapowymi
2) git diffall --cached [<commit>]
: pokazuje różnicę między etapowymi zmianami i HEAD
(lub innym nazwanym zatwierdzeniem)
3) git diffall <commit>
: pokazuje różnicę między działającym drzewem a nazwanym zatwierdzeniem
4) git diffall <commit> <commit>
: pokazuje różnicę między dwoma nazwanymi zatwierdzeniami
5) git diffall <commit>..<commit>
: to samo jak powyżej
6) git diffall <commit>...<commit>
: pokaż zmiany w gałęzi zawierającej i do drugiej, zaczynając od wspólnego przodka obu<commit>
Uwaga: wszystkie formularze mają opcjonalny ogranicznik ścieżki [--] [<path>]
Ten skrypt jest oparty na przykładzie podanym przez Thomasa Rasta na liście Git .