Начиная с git
v1.7.11, вы можете использовать git difftool --dir-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 .
Я собрал сценарий оболочки, основанный на том потоке электронной почты, который выполняет директорию diff между произвольными коммитами.
Начиная с git v1.7.10, скрипт git-diffall
входит в contrib
стандартной установки git.
Для версий до v1.7.10 вы можете установить из git-diffall
проекта на GitHub .
Вот описание проекта:
Скрипт git-diffall предоставляет
механизм сравнения на основе каталога для
мерзавец. Сценарий опирается на
опция конфигурации diff.tool для
определите, какая программа просмотра различий используется.
Этот скрипт совместим со всеми
формы, используемые для указания диапазона
изменения в diff:
1) git diffall
: показывает разницу между
рабочее дерево и поэтапные изменения
2) git diffall --cached [<commit>]
: показывает
разница между поэтапными изменениями и HEAD
(или другой именованный коммит)
3) git diffall <commit>
: показывает разницу между
рабочее дерево с именем commit
4) git diffall <commit> <commit>
: показать разницу
между двумя именованными коммитами
5) git diffall <commit>..<commit>
: так же, как
выше
6) git diffall <commit>...<commit>
: показать изменения
на ветке, содержащей и до
во-вторых, начиная с общего
предок обоих <commit>
Примечание: все формы имеют необязательный путь
ограничитель [--] [<path>]
Этот скрипт основан на примере
предоставленный Томасом Растом на Git
список .