Mostrar git diff HEAD~1 do arquivo não tocado em commits recentes

Mostrar git diff HEAD~1 do arquivo não tocado em commits recentes

No Git, para ver as diferenças com um commit anterior, executo isto:

git diff HEAD~1

Para ver os commits relacionados a um único, fileeu executaria isto:

git log --oneline file

Mas se eu executar o seguinte e o arquivo que quero referenciar não foi alterado nos últimos commits, o Git não mostra nada.

git diff HEAD~1 file

Como posso visualizar o diff de maneira semelhante, HEADmas a um arquivo específico, se esse arquivo não foi confirmado na referência apontada por HEAD?

Responder1

Você terá que referenciar o SHA explicitamente se quiser ver a diferença 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 raspado - em vez disso, liguei para a pizzaria local
b09206c adicionou molho e uma garrafa de pimenta à lista
ad90f90 sove a massa e deixe durante a noite

Agora, se você quiser ver a comparação das alterações feitas no arquivo, faça referência a ele por meio do segundo SHA que você vê. Neste caso temos isto do exemplo:

git diff b09206c <file>

O acima é uma abreviação 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> 

informação relacionada