git diff

Se você precisar obter uma lista de arquivos alterados entre dois commits no git, pode fazer isso usando git diff.

git diff --name-only A..B

Aé o início de seu intervalo e Bé o fim de seu intervalo. Observe os dois pontos entre os dois pontos finais! Eles são importantes. Ae Bpode ser qualquer tipo de referência: um commit SHA (ou seja, a12e34o13), um branch (ou seja, HEAD) ou mesmo uma tag (ou seja, v2.0.0).

Eu freqüentemente uso isso com tags. É uma ótima maneira de produzir uma lista de arquivos entre duas versões. Por exemplo:

$ git diff --name-only v2.0.0..v3.0.0

css
/styles.css
css
/normalize.css
js
/script.js
img
/background.jpg
img
/logo.jpg
index
.html

Não é legal?

Bônus: tubulação com cpio

cpioé um excelente utilitário que permite executar essencialmente uma cópia que mantém uma estrutura de arquivo. Eu uso cpioo tempo todo em conjunto com git diffa saída de para produzir uma pasta que contém um patch. É assim que eu faço:

git diff --name-only v2.0.0..v3.0.0 | cpio -pdum v3.0.0-patch

Agora terei uma pasta contendo a lista de arquivos produzidos git diff!


Se você gostou disso, por favor, considere me seguir no Twitter .