6. Histórico

Conferindo a diferença entre commits

Antes, usamos o git log para ver o histórico geral do repositório. Mas muitas vezes você vai querer ver os commits que afetaram um arquivo específico.

Por exemplo, se você encontrou um trecho estranho de código em um dos seus arquivos e quer descobrir quem fez essa alteração e por quê, o primeiro passo é ver o histórico daquele arquivo em particular. Você pode fazer isso com o comando git log seguido do caminho do arquivo, por exemplo, git log hello.html.

Tarefa
Concluída

Confira o histórico do arquivo hello.html usando o comando acima.

Dica: lembre-se de que você pode rolar a saída do git log usando as setas e do teclado. Para sair do modo pager, pressione q.

Agora, vamos fazer o mesmo com o arquivo style.css.

Tarefa
Concluída

Confira o histórico do arquivo style.css.

Como você pode ver, só aparecem os commits que afetaram o arquivo especificado. Isso é muito útil quando você quer ver como um arquivo específico mudou ao longo do tempo. Agora, como comparar as alterações de fato entre dois commits?

Vamos descobrir!

Já usamos o git diff para conferir as alterações que fizemos no diretório de trabalho em comparação com a staging area ou com o último commit. Agora vamos ver como comparar quaisquer dois commits do repositório.

Por exemplo, vamos ver o que mudou no arquivo hello.html desde a versão 1.0 (criamos a tag 1.0 no capítulo sobre tags do Git, lembra?).

Para comparar dois commits, podemos usar o comando git diff seguido de duas referências de commit, como git diff <from> <to>. A ordem importa: o Git mostra o que você precisaria alterar no primeiro commit para chegar ao segundo. Se você passar só uma referência de commit, vai compará-lo com o diretório de trabalho.

Não esqueça que existem várias formas de se referir a commits: pelos hashes, tags, nomes de branches ou usando referências relativas como HEAD~1 etc.

Entendi!

Vamos comparar a versão 1.0 do arquivo hello.html com o estado desse arquivo no commit mais recente. Você pode fazer isso com o seguinte comando:

Executar no terminal:
git diff 1.0 HEAD
Tarefa
Concluída

Execute o comando acima para comparar os dois últimos commits.

Dica: quando a saída do git diff não cabe em uma tela, seu terminal entra no modo pager. Como antes, você pode rolar a saída usando as setas e do teclado. Para sair do modo pager, pressione q.

A parte importante deve ficar assim. O Git vai mostrar hashes reais para as versões comparadas do arquivo na linha index; este exemplo usa <old> e <new> no lugar:

Resultado:
diff --git a/hello.html b/hello.html
index <old>..<new> 100644
--- a/hello.html
+++ b/hello.html
@@ -1,4 +1,7 @@
<html>
+ <head>
+ <link rel="stylesheet" href="style.css"/>
+ </head>
<body>
<h1>Hello, World!</h1>
</body>
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..<new>
--- /dev/null
+++ b/style.css
@@ -0,0 +1,3 @@
+h1 {
+ color: red;
+}
\ No newline at end of file

A saída mostra as alterações entre esses dois commits: as linhas que foram removidas (marcadas com -) e as linhas que foram adicionadas (marcadas com +).

Next step
Quer testar o modo história?

Faça o curso do jeito que ele foi pensado: progressão em pequenas doses, ordem linear e focada, desbloqueio gradual das entradas da Gitopedia. Continue com o Git de verdade no VS Code/Cursor/Antigravity/Windsurf a qualquer momento.

Modo história
GRATUITO
mas precisa de login