Isso existe, mas na verdade é um recurso de git log
:
git log -p [--follow] [-1] <path>
Observe que -p
também pode ser usado para mostrar o diff inline de um único commit:
git log -p -1 <commit>
Opções utilizadas:
-p
(também -u
ou --patch
) está oculto na git-log
página de manual e, na verdade, é uma opção de exibição para git-diff
. Quando usado com log
, mostra o patch que seria gerado para cada confirmação , juntamente com as informações de confirmação - e oculta as confirmações que não tocam na especificada <path>
. (Esse comportamento é descrito no parágrafo --full-diff
a seguir, o que faz com que o diff completo de cada confirmação seja mostrado.)
-1
mostra apenas a alteração mais recente no arquivo especificado ( -n 1
pode ser usado em vez de -1
); caso contrário, todas as diferenças diferentes de zero desse arquivo serão mostradas.
--follow
é necessário para ver as alterações que ocorreram antes de uma renomeação.
Até onde sei, essa é a única maneira de ver imediatamente o último conjunto de alterações feitas em um arquivo sem usar git log
(ou semelhante) para contar o número de revisões intermediárias ou determinar o hash da confirmação.
Para ver alterações nas revisões mais antigas, basta rolar pelo log ou especificar uma confirmação ou marca a partir da qual iniciar o log. (Obviamente, especificar uma confirmação ou marca retorna ao problema original de descobrir qual é a confirmação ou marca correta.)
Crédito onde o crédito é devido:
- Eu descobri
log -p
graças a esta resposta .
- Agradeço a FranciscoPuga e esta resposta por me mostrar a
--follow
opção.
- Agradecemos a ChrisBetti por mencionar a
-n 1
opção e a atatko por mencionar a -1
variante.
- Os nossos agradecimentos a sweaver2112 por me fazer realmente ler a documentação e descobrir o que
-p
"significa" semanticamente.
git diff HEAD^ <file_path>