A partir da git
v1.7.11, você pode usar git difftool --dir-diff
para executar uma comparação de diretório.
Esse recurso funciona bem com o Meld 3.14.2, por exemplo, e permite navegar em todos os arquivos modificados:
git difftool --dir-diff --tool=meld HEAD~ HEAD
Esta é uma função útil do Bash:
git-diff-meld() (
git difftool --dir-diff --tool=meld "${1:-HEAD~}" "${2:-HEAD}"
)
A resposta a seguir se aplica a git
instalações anteriores à v1.7.11.
Essa mesma pergunta foi feita na lista de e-mails do git .
Eu montei um script de shell com base nesse segmento de email que executa uma diferença de diretório entre confirmações arbitrárias.
A partir do git v1.7.10, o git-diffall
script é incluído na contrib
instalação padrão do git.
Para versões anteriores à v1.7.10, você pode instalar a partir do git-diffall
projeto no GitHub .
Aqui está a descrição do projeto:
O script git-diffall fornece um mecanismo diff baseado em diretório para o git. O script conta com a opção de configuração diff.tool para determinar qual visualizador diff é usado.
Este script é compatível com todos os formulários usados para especificar um intervalo de revisões a serem diferidas:
1) git diffall
: mostra diff entre a árvore de trabalho e as alterações faseadas
2) git diffall --cached [<commit>]
: mostra o diff entre as mudanças faseadas e HEAD
(ou outro commit nomeado)
3) git diffall <commit>
: mostra o diff entre a árvore de trabalho e o commit nomeado
4) git diffall <commit> <commit>
: mostra o diff entre os dois commits nomeados
5) git diffall <commit>..<commit>
: mesmo como acima
6) git diffall <commit>...<commit>
: mostra as alterações no ramo que contém e até o segundo, iniciando em um ancestral comum de ambos<commit>
Nota: todos os formulários usam um limitador de caminho opcional [--] [<path>]
Este script é baseado em um exemplo fornecido por Thomas Rast na lista do Git .