Починаючи з gitv1.7.11, ви можете використовувати git difftool --dir-diffдля виконання каталогу diff.
Наприклад, ця функція добре працює з Meld 3.14.2, і дозволяє переглядати всі змінені файли:
git difftool --dir-diff --tool=meld HEAD~ HEAD
Це зручна функція Bash:
git-diff-meld() (
git difftool --dir-diff --tool=meld "${1:-HEAD~}" "${2:-HEAD}"
)
gitНаступна відповідь стосується установок, старших за v1.7.11.
Це ж питання було задано у списку git mail .
Я зібрав сценарій оболонки на основі того потоку електронної пошти, який виконує каталог, що відрізняється від довільних комітів.
Починаючи з git v1.7.10, git-diffallскрипт включений у contribстандартну установку git.
Для версій до v1.7.10 ви можете встановити з git-diffallпроекту на GitHub .
Ось опис проекту:
Скрипт git-diffall забезпечує механізм diff, заснований на каталозі. Сценарій спирається на параметр конфігурації diff.tool, щоб визначити, який переглядач diff використовується.
Цей скрипт сумісний із усіма формами, які використовуються для визначення діапазону змін, що відрізняються:
1) git diffall: показує різницю між робочим деревом та поетапними змінами
2) git diffall --cached [<commit>]: показує різницю між поетапними змінами та HEAD
(або іншим іменованим фіксацією)
3) git diffall <commit>: показує різницю між робочим деревом та іменованим фіксацією
4) git diffall <commit> <commit>: показує різницю між двома названими коми
5) git diffall <commit>..<commit>: те саме як вище
6) git diffall <commit>...<commit>: покажіть зміни на гілці, що містять і до другої, починаючи з спільного предка обох<commit>
Примітка. Усі форми мають необов'язковий обмежувач шляху [--] [<path>]
Цей сценарій заснований на прикладі, поданому Томасом Растом у списку Git .