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