Encontre todos os arquivos modificados entre commits no Git

Existem muitas ocasiões em que você pode precisar obter uma lista de arquivos que foram alterados entre o commit X e o commit Y.

Isso é surpreendentemente fácil com Git e pode ser feito com o SHA, tag ou relativo ao HEAD.

Use o seguinte comando:

git diff --name-only <SHA, tag start> <SHA, tag end>

Isso usará o comando diff, mas apenas produzirá os nomes dos arquivos em vez das alterações em cada arquivo.

Por exemplo, podemos obter os nomes de todos os arquivos que foram alterados nos últimos 3 commits:

git diff --name-only HEAD HEAD~3

O comando acima produzirá a seguinte saída:

dir/file1.rb
file
.rb
another_dir
/another_file.txt

Você pode então colocá-lo em um arquivo ou copiá-lo e colá-lo onde for necessário.

Você também pode adicionar a ação que foi realizada em cada arquivo, para que possa ver se o arquivo foi excluído, modificado ou adicionado:

git diff --name-status HEAD HEAD~3

Isso produziria a seguinte saída:

D           dir/file1.rb
M file
.rb
A another_dir
/another_file.txt

Onde:

A = Added
D
= Deleted
M
= Modified
R
= Renamed

Respostas relacionadas:

git checkout remote branch