O Ciclo Básico: Staging e Commit
O Git não registra alterações automaticamente. Você decide o que salvar e quando. O fluxo básico tem dois passos:
- Staging (preparação): você marca quais alterações deseja incluir no próximo registro.
- Commit (registro): você grava essas alterações no histórico, junto com uma mensagem descritiva.
Vamos ver na prática. Suponha que criamos um arquivo index.html dentro do
nosso repositório:
<!DOCTYPE html>
<html>
<head>
<title>Meu Site</title>
</head>
<body>
<h1>Olá, mundo!</h1>
</body>
</html>
Se rodarmos git status, o Git nos diz que existe um arquivo novo que ele
ainda não está rastreando:
$ git status
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
index.html
nothing added to commit but untracked files present (use "git add" to track)
Para incluir esse arquivo no próximo commit, usamos git add:
$ git add index.html
Agora o arquivo está na área de staging (staging area). Podemos confirmar
com git status:
$ git status
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: index.html
O Git está dizendo: “quando você fizer o próximo commit, vou incluir a criação
do arquivo index.html”. Para gravar de fato, usamos git commit com uma
mensagem que descreve a alteração:
$ git commit -m "Criar página inicial com título e saudação"
[main (root-commit) a1b2c3d] Criar página inicial com título e saudação
1 file changed, 9 insertions(+)
create mode 100644 index.html
Pronto. A alteração está registrada no histórico. O identificador a1b2c3d é
um hash (resumo criptográfico) que identifica esse commit de forma única. Na
prática, o hash completo tem 40 caracteres hexadecimais (ex:
a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0), mas o Git permite usar apenas
os primeiros caracteres, desde que não haja ambiguidade.
Vários Arquivos, Um Commit
Não é necessário fazer um commit por arquivo. Você pode adicionar vários arquivos à área de staging e registrá-los todos de uma vez. O importante é que cada commit represente uma unidade lógica de mudança: uma alteração coerente, com um propósito claro.
Por exemplo, se você criou um arquivo style.css e modificou o index.html
para referenciá-lo, faz sentido que ambas as alterações entrem no mesmo commit,
pois juntas elas formam uma unidade: “adicionar estilização à página inicial”.
$ git add index.html style.css
$ git commit -m "Adicionar estilização à página inicial"
[main e4f5a6b] Adicionar estilização à página inicial
2 files changed, 18 insertions(+), 1 deletion(-)
create mode 100644 style.css
Visualizando o Histórico
O comando git log mostra o histórico de commits, do mais recente ao mais
antigo:
$ git log
commit e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3 (HEAD -> main)
Author: Maria Silva <maria@example.com>
Date: Mon Aug 11 14:32:10 2026 -0300
Adicionar estilização à página inicial
commit a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0
Author: Maria Silva <maria@example.com>
Date: Mon Aug 11 14:15:42 2026 -0300
Criar página inicial com título e saudação
Cada entrada mostra o hash completo, o autor, a data e a mensagem. Para uma
versão mais compacta, use git log --oneline:
$ git log --oneline
e4f5a6b Adicionar estilização à página inicial
a1b2c3d Criar página inicial com título e saudação
Vendo o que Mudou
Antes de fazer um commit, é boa prática verificar exatamente o que mudou.
O comando git diff mostra as alterações que ainda não foram adicionadas à
área de staging:
$ git diff
diff --git a/index.html b/index.html
index 3b18e51..f3c4a12 100644
--- a/index.html
+++ b/index.html
@@ -5,6 +5,7 @@
</head>
<body>
<h1>Olá, mundo!</h1>
+ <p>Bem-vindo ao meu site.</p>
</body>
</html>
As linhas com + foram adicionadas; linhas com - foram removidas. Nesse
caso, adicionamos um parágrafo de boas-vindas.