Починаючи з git
v1.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 .