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.
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.
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?
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.
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:
git diff 1.0 HEADExecute 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:
diff --git a/hello.html b/hello.htmlindex <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.cssnew file mode 100644index 0000000..<new>--- /dev/null+++ b/style.css@@ -0,0 +1,3 @@+h1 {+ color: red;+}\ No newline at end of fileA 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 +).
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.
mas precisa de login