
Passo 1 de 7
Consultar alterações com git diff
Use git diff para inspecionar alterações ainda não preparadas, entendendo quais estados são comparados e por que a consulta não altera o repositório.
Trilha de aprendizado · Nível 1 · Tutorial 3
Você será capaz de conferir mudanças antes de registrá-las e consultar o histórico para localizar commits e entender a sequência de trabalho.
Consultar alterações com git diff
Use git diff para inspecionar alterações ainda não preparadas, entendendo quais estados são comparados e por que a consulta não altera o repositório. 2 min
Ler arquivos e linhas no diff
Identifique o arquivo afetado e diferencie linhas removidas, adicionadas e de contexto em uma saída curta de git diff. 2 min
Conferir as alterações preparadas
Escolha a comparação adequada para conferir mudanças preparadas e mudanças ainda fora do próximo commit. 2 min
Entender os limites de uma saída vazia
Use git status como evidência complementar para não confundir um diff vazio com ausência de mudanças. 2 min
Ler os detalhes do histórico com git log
Consulte commits registrados e identifique hash, autoria, data e mensagem para reconstruir a sequência de trabalho. 2 min
Localizar commits com git log --oneline
Encontre commits no histórico resumido e relacione seus identificadores e mensagens aos registros detalhados. 2 min
Aplicar uma rotina de inspeção
Revise um cenário com alterações preparadas, não preparadas e um arquivo não rastreado, e localize um registro no histórico. 3 min

Passo 1 de 7
Use git diff para inspecionar alterações ainda não preparadas, entendendo quais estados são comparados e por que a consulta não altera o repositório.
O comando git diff, sem argumentos, compara o conteúdo dos arquivos de trabalho com o conteúdo correspondente na área de preparação.
Assim, você consulta alterações ainda não preparadas. A referência é a área de preparação, não necessariamente o último commit.
git diffDica
Se a saída abrir no paginador comum do Git, um visualizador dentro do terminal, pressione q para sair da visualização e voltar a digitar comandos.
O título em notas.txt está assim:
Quais conteúdos git diff compara nesse arquivo?
Executar git diff não modifica arquivos, não prepara conteúdo e não cria commits. O comando apenas mostra as diferenças para você decidir o que fazer depois.
Exemplo
No exemplo de notas.txt, o arquivo de trabalho continua com “Guia rápido” e a preparação continua com “Guia”. Ver a diferença não transfere a nova edição para a preparação.
Ao executar git diff, as alterações exibidas são automaticamente colocadas na área de preparação.

Passo 2 de 7
Identifique o arquivo afetado e diferencie linhas removidas, adicionadas e de contexto em uma saída curta de git diff.
Para entender uma diferença, separe os cabeçalhos, que identificam o arquivo e os lados da comparação, das linhas de conteúdo.
diff --git a/recado.txt b/recado.txt
--- a/recado.txt
+++ b/recado.txtO arquivo comparado é recado.txt. Os prefixos a/ e b/ representam os dois lados da comparação: não são pastas que você precisa criar.
O cabeçalho --- indica o lado anterior; +++, o posterior. Essas linhas não são conteúdo removido ou adicionado.
A linha +++ b/recado.txt representa uma linha de conteúdo adicionada ao arquivo.
@@ -1,3 +1,3 @@
Avisos da equipe
-Reunião às 9h.
+Reunião às 10h.
Sala 2.A linha com @@ marca o início de um trecho de diferenças e indica sua localização no arquivo. Por enquanto, não é preciso detalhar os números.
Nas linhas de conteúdo:
- no início indica remoção.+ no início indica adição.Esses sinais funcionam mesmo quando o terminal não usa cores.
Exemplo
A reunião passou das 9h para as 10h: o texto antigo aparece removido e o novo, adicionado. Isso representa a edição de uma linha.
“ avisos”
diff --git a/lista.txt b/lista.txt
--- a/lista.txt
+++ b/lista.txt
@@ -1,3 +1,3 @@
Compras
-Café
+Chá
PãoIndique o arquivo afetado, o conteúdo de uma linha removida, o de uma linha adicionada e o de uma linha de contexto.
Escreva pelo menos 15 caracteres (0/15).

Passo 3 de 7
Escolha a comparação adequada para conferir mudanças preparadas e mudanças ainda fora do próximo commit.
git diff --staged compara a área de preparação com o último commit. Ele mostra as diferenças que serão registradas no próximo commit se a preparação permanecer como está.
Exemplo
Em aviso.txt, uma linha passou por estes estados:
Status: rascunhoStatus: revisadoStatus: prontoA versão “revisado” foi preparada; depois, houve outra edição. O mesmo arquivo aparece nas duas consultas porque elas comparam pares diferentes de estados.
diff --git a/aviso.txt b/aviso.txt
--- a/aviso.txt
+++ b/aviso.txt
@@ -1 +1 @@
-Status: rascunho
+Status: revisadodiff --git a/aviso.txt b/aviso.txt
--- a/aviso.txt
+++ b/aviso.txt
@@ -1 +1 @@
-Status: revisado
+Status: prontoRelacione os comandos e as mudanças de aviso.txt às descrições corretas.
Toque em um item e depois no par correspondente.
git diff --staged também mostra criações e exclusões já preparadas. Nos cabeçalhos, /dev/null indica que não existe arquivo naquele lado da comparação. Veja estes trechos, com metadados omitidos:
O arquivo não existia no último commit. Seu conteúdo aparece como adição.
diff --git a/guia.txt b/guia.txt
--- /dev/null
+++ b/guia.txt
@@ -0,0 +1 @@
+Comece por aqui.O arquivo deixa de existir no lado preparado. Seu conteúdo anterior aparece como remoção.
diff --git a/rascunho.txt b/rascunho.txt
--- a/rascunho.txt
+++ /dev/null
@@ -1 +0,0 @@
-Anotações antigas.Considerando o trecho de rascunho.txt da tela anterior: se a preparação não mudar, o próximo commit manterá esse arquivo, mas vazio.

Passo 4 de 7
Use git status como evidência complementar para não confundir um diff vazio com ausência de mudanças.
Uma saída vazia de git diff indica que não há diferenças entre os arquivos de trabalho rastreados e a área de preparação. Isso não garante que o projeto esteja sem mudanças.
Dica
Use git status para verificar se existem alterações já preparadas ou arquivos não rastreados fora do alcance dessa consulta.
Exemplo
git diff não exibiu diferenças. Ao consultar git status, você encontra roteiro.txt como modificado, na seção de alterações preparadas.
Como git diff ficou vazio, não há alterações para entrar no próximo commit.
git diff não exibe o conteúdo de arquivos não rastreados. git diff --staged também não os inclui enquanto permanecerem fora da preparação.
Exemplo
Se notas.txt é um arquivo não rastreado, abra-o no editor para ler o conteúdo. Se decidir incluí-lo no próximo commit, prepare esse arquivo explicitamente e confira a versão preparada:
git add notas.txt
git diff --stagedExemplo
Em outro cenário, git diff e git diff --staged não exibiram diferenças. O git status mostra apenas notas.txt como arquivo não rastreado.
Qual conclusão é válida?

Passo 5 de 7
Consulte commits registrados e identifique hash, autoria, data e mensagem para reconstruir a sequência de trabalho.
Na pasta do repositório, execute o comando abaixo. git log mostra commits já registrados, não mudanças que ainda estão apenas nos arquivos de trabalho ou na área de preparação.
git logcommit c83a4d219e7f6b05a2d908b31f4e6c70d59a8123
Author: Ana Lima <ana@example.com>
Date: Tue May 6 14:30:00 2025 -0300
Corrige horário de atendimento-0300.commit f174b6e20a93c8d57e601fb48d2a9c350e76b812
Author: Bruno Reis <bruno@example.com>
Date: Mon May 5 10:00:00 2025 -0300
Adiciona horário de atendimentoAssocie cada campo ao dado correspondente no registro acima.
Toque em um item e depois no par correspondente.
No histórico linear simples usado neste exercício, git log apresenta os commits mais recentes antes dos mais antigos.
Para acompanhar o trabalho do início ao fim, leia os registros de baixo para cima e conecte suas mensagens. Elas ajudam a entender o que foi feito em cada etapa.
Dica
O identificador não significa “versão 1, 2, 3”. Não tente descobrir qual commit é mais recente comparando o valor dos hashes: use a posição dos registros nesse histórico.
commit c83a4d219e7f6b05a2d908b31f4e6c70d59a8123
Author: Ana Lima <ana@example.com>
Date: Tue May 6 14:30:00 2025 -0300
Corrige horário de atendimento
commit f174b6e20a93c8d57e601fb48d2a9c350e76b812
Author: Bruno Reis <bruno@example.com>
Date: Mon May 5 10:00:00 2025 -0300
Adiciona horário de atendimento
commit 8b71e6d4c2309a5f17e8b602d9c43f50a6e12b73
Author: Ana Lima <ana@example.com>
Date: Fri May 2 09:00:00 2025 -0300
Cria página inicialOrganize as mensagens do commit mais antigo para o mais recente.

Passo 6 de 7
Encontre commits no histórico resumido e relacione seus identificadores e mensagens aos registros detalhados.
Para localizar um commit sem percorrer todos os seus detalhes, use git log --oneline.
Cada linha reúne o identificador abreviado e o resumo da mensagem. Esse resumo corresponde ao título, ou primeira linha, da mensagem do commit.
git log --onelinee3b90a6 Ajusta o título da página
4c8d2e1 Corrige o link de contato
b7a16c2 Adiciona instruções de instalação
9f2c7a4 Cria a página inicialQual é o identificador abreviado do commit que corrige o link de contato? Digite apenas o identificador.
O identificador abreviado é um prefixo do identificador completo: ele mostra os caracteres iniciais, na mesma ordem.
A quantidade de caracteres pode variar; não precisa ser sempre sete. A forma abreviada continua representando o mesmo commit.
Dica
Use git log --oneline para localizar registros rapidamente. Para conferir autoria, data e a mensagem completa, consulte a saída padrão de git log.
commit b7a16c2d9034e85f6a102bc7d8e49f305ac612e0
Author: Ana Lima <ana@exemplo.test>
Date: Tue Apr 8 10:20:00 2025 -0300
Adiciona instruções de instalação
Explica como preparar o projeto no computador.e3b90a6 Ajusta o título da página
4c8d2e1 Corrige o link de contato
b7a16c2 Adiciona instruções de instalação
9f2c7a4 Cria a página inicialQual commit do histórico resumido corresponde ao registro detalhado? Informe o identificador abreviado e justifique usando o início do identificador completo e a primeira linha da mensagem.
Escreva pelo menos 25 caracteres (0/25).

Passo 7 de 7
Revise um cenário com alterações preparadas, não preparadas e um arquivo não rastreado, e localize um registro no histórico.
Neste projeto fictício, git status indica alterações preparadas e não preparadas em aviso.txt, além de ideias.txt como não rastreado. Não há outras mudanças. Compare as saídas:
diff --git a/aviso.txt b/aviso.txt
--- a/aviso.txt
+++ b/aviso.txt
@@ -1,2 +1,2 @@
Atendimento
-Sábado: 9h às 12h
+Sábado: 9h às 13hdiff --git a/aviso.txt b/aviso.txt
--- a/aviso.txt
+++ b/aviso.txt
@@ -1,2 +1,2 @@
Atendimento
-Sábado: 10h às 12h
+Sábado: 9h às 12hSe a área de preparação permanecer como está, qual consulta confirma a mudança que será registrada no próximo commit?
Qual comando mostra a mudança ainda não preparada em aviso.txt? Por que ideias.txt não aparece nos diffs e onde você pode ler seu conteúdo?
Escreva pelo menos 20 caracteres (0/20).
c84d2a1 Ajusta título do aviso
7e3b9c2 Adiciona horário de sábado
2a61f80 Cria aviso de atendimentocommit 7e3b9c2a4d6e8f00112233445566778899aabbcc
Author: Marina Costa <marina@example.com>
Date: Mon Jun 9 09:00:00 2025 -0300
Adiciona horário de sábadoLocalize o commit que adicionou o horário de sábado. Informe seu identificador abreviado, autoria, data de autoria e mensagem. Nesse histórico linear, ele veio antes ou depois do ajuste no título?
Escreva pelo menos 20 caracteres (0/20).
Resumo
Parabéns! Você concluiu: Inspecionar alterações e histórico com diff e log
Milhares de cursos online em vídeo, ebooks e áudiobooks.
Para testar seus conhecimentos no decorrer dos cursos online
Gerado diretamente na galeria de fotos do seu celular e enviado ao seu e-mail
Baixe nosso aplicativo pelo QR Code ou pelos links abaixo:.
+ de 10 milhões
de alunos
Certificado grátis e
válido em todo o Brasil
60 mil exercícios
gratuitos
4,8/5 classificação
nas lojas de apps
Cursos gratuitos em
vídeo, ebooks e audiobooks