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

2

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

git diff HEAD~1

Para ver as confirmações relacionadas com um único file , eu executaria isso:

git log --oneline file

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

git diff HEAD~1 file

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

    
por juanpablo 12.11.2012 / 13:56

1 resposta

0

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> 
    
por 26.01.2013 / 00:55

Tags