Isso existe, mas na verdade é um recurso de git log:
git log -p [--follow] [-1] <path>
Observe que -ptambém pode ser usado para mostrar o diff inline de um único commit:
git log -p -1 <commit>
Opções utilizadas:
-p(também -uou --patch) está oculto na git-logpá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-diffa seguir, o que faz com que o diff completo de cada confirmação seja mostrado.)
-1mostra apenas a alteração mais recente no arquivo especificado ( -n 1pode 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 -pgraças a esta resposta .
- Agradeço a FranciscoPuga e esta resposta por me mostrar a
--followopção.
- Agradecemos a ChrisBetti por mencionar a
-n 1opção e a atatko por mencionar a -1variante.
- 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>