Você terá que referenciar o SHA explicitamente se quiser ver o diff de um arquivo que não foi alterado entre o último commit e o anterior ( HEAD~1
).
Execute o log para ver alguns dos SHAs que você deseja visualizar
git log --oneline <file>
Um exemplo de saída é o seguinte:
af46919 scraped - called local pizzeria instead b09206c added sauce and bottle of dr pepper into list ad90f90 knead dough and leave over night
Agora, se você quiser ver a diferença das alterações feitas no arquivo, faça referência ao segundo SHA que você vê. Neste caso, temos isto do exemplo:
git diff b09206c <file>
O acima é um atalho para
git diff b09206c HEAD <file>
Ou pense assim:
git diff <start-commit-SHA> <future-commit-SHA> <file>
Para executá-lo como um comando (por exemplo, para script), você pode fazer:
git log --oneline <file> |awk 'NR==2{print $1}'|xargs -I {} git diff {} <file>