Às vezes, quando estou prestes a fazer um commit, não consigo me lembrar exatamente o que mudou desde o último commit. Como posso ver uma diferença do estado atual do código e o último commit?
94
Se você ainda não adicionou nenhum arquivo ao índice (com git add
), basta fazer
git diff
Isso mostrará a diferença entre sua árvore de trabalho e o índice.
Se você adicionou arquivos ao índice, você precisa fazer isso para mostrar as diferenças entre o índice e o último commit (HEAD).
git diff --cached
Finalmente, se você quiser ver as mudanças feitas na árvore de trabalho em comparação com o último commit ( HEAD
) você pode (como Carlos aponta) fazer
git diff HEAD
Essas mudanças são a combinação de git diff
e git diff --cached
.
git diff
compara a árvore de trabalho com o índice, não HEAD.git diff
o estado do índice e o commit anterior em uma mensagem diff?git diff --cached HEAD^
:)Se você acabou de fazer um commit, ou quer ver o que mudou no último commit em comparação com o estado atual (assumindo que você tem uma árvore de trabalho limpa), você pode usar:
Isso irá comparar o HEAD com o commit imediatamente anterior. Também se pode fazer
para comparar com o estado de jogo 2 commits atrás. Para ver a diferença entre o estado atual e um determinado commit, basta fazer:
Onde
b6af6qc
está um exemplo de hash de confirmação.fonte
HEAD^
é o commit antes do último commit.Você pede ao git para diferenciar o último / atual commit, que tem a abreviação de
HEAD
.Portanto
git diff HEAD
, comparará o estado atual da árvore de trabalho com o commit atual.fonte
isso também mostra a diferença e quais arquivos foram alterados / modificados.
Exibe caminhos que têm diferenças entre o arquivo de índice e o commit HEAD atual, caminhos que têm diferenças entre a árvore de trabalho e o arquivo de índice e caminhos na árvore de trabalho que não são rastreados por git (e não são ignorados por gitignore (5) ) O primeiro é o que você iria cometer executando git commit; o segundo e o terceiro são o que você pode confirmar executando git add antes de executar git commit.
https://www.kernel.org/pub/software/scm/git/docs/git-status.html
fonte
Isso também funciona para mim:
Isso geralmente funciona para uma história linear. Isso pode ficar mais complicado se também houver commits de mesclagem. Recomendo que você dê uma olhada neste documento para uma explicação agradável e completa, especialmente aquele exemplo de ilustração de árvore de commit:
https://git-scm.com/docs/gitrevisions
fonte
Você já tentou
git show
?Você não precisa escrever HEAD ou SHA-1 do último commit, apenas digite
git show
.Acho que seria útil tanto para as suas necessidades quanto para as demais respostas, mas com um pouco menos de digitação e mais informações dependendo do caso.
Aqui, adiciono uma amostra do que
git show
realmente mostra:fonte