Lição 5 de 8 · 15 min · Verificado em 10 de Outubro de 2026
Git essencial com o agente ao lado
No fim desta lição vais conseguir:
- Guardar pontos de regresso numa pasta com git init, git add e git commit
- Ver o que mudou e o histórico com git status, git diff e git log
- Voltar atrás num ficheiro com git restore
- Pedir ao agente que corra os comandos de Git e explique cada um antes de o autorizares
Sexta-feira à tarde, a página da padaria está como deve ser: horário, pão do dia, telefone. Na segunda-feira pedes ao agente «põe o horário de Inverno». Ele mexe em dois ficheiros, a página fica desalinhada e tu já não te lembras de como estava. O Ctrl+Z do editor não ajuda: quem mexeu foi o agente, não tu.
Com o Git, voltar a sexta-feira é um comando.
O conceito: uma máquina do tempo para a pasta
O Git é um programa que tira fotografias de uma pasta. Cada fotografia chama-se commit e leva uma frase tua a dizer o que mudou, por exemplo «Horário de Inverno na página inicial». Uma pasta com estas fotografias chama-se repositório.
Três ideias chegam para começar:
- Tu decides quando tirar a fotografia. O Git não guarda nada sozinho.
- As fotografias ficam numa subpasta escondida chamada
.git. Não lhe mexas à mão. - Qualquer fotografia pode ser vista ou recuperada mais tarde.
Como viste na lição anterior, há maneiras de recuar quando o agente faz asneira. O Git é a rede de segurança que funciona com qualquer agente, mesmo depois de fechares a sessão, para tudo o que guardaste num commit.
Como se faz hoje
Isto é como está a 6 de Outubro de 2026; se o ecrã for diferente, procura o botão com o mesmo nome. Os comandos vêm do livro oficial do Git, que tem capítulos em português: Pro Git em português.
Uma vez por computador. Confirma que tens o Git:
git --version
Se aparecer um número de versão, está instalado. Se não, segue o capítulo «Instalar o Git» do livro. Depois diz ao Git quem és, porque o nome e o email ficam escritos em cada commit:
git config --global user.name "O Teu Nome"
git config --global user.email "o-teu-email@example.com"
Os comandos do dia-a-dia. Cria uma pasta padaria e entra nela com cd padaria. Sem ficheiros não há nada para fotografar: grava lá primeiro um index.html (com o editor ou pedindo ao agente). Depois, para guardar:
git init # liga a máquina do tempo nesta pasta (só uma vez)
git add . # junta o que mudou para a próxima fotografia
git commit -m "Primeira versão" # tira a fotografia, com uma frase
Para ver, sem mudar nada:
git status # ficheiros mudados, juntos para o commit e novos
git diff # linha a linha, o que mudou e ainda não juntaste
git diff --staged # o que já juntaste com git add
git log --oneline # as fotografias, da mais recente para a mais antiga
O git diff tem o aspecto que já conheces: linhas com - saíram, linhas com + entraram. Um ficheiro novo, que o Git ainda não segue, não aparece no git diff: só no git status.
Para recuar um ficheiro ao último commit, lê primeiro isto:
Cuidado
O git restore não pede confirmação: o que mudaste nesse ficheiro desde o último commit desaparece. Antes, vê com git diff HEAD -- index.html o que vais perder (e com git diff --staged -- index.html o que já juntaste) e, na dúvida, copia a pasta. O mesmo vale, com mais estrago, para git reset --hard, git clean e git push --force. Se um destes aparecer num pedido de autorização do agente, pára e pede-lhe que explique o que se perde.
git restore --source=HEAD index.html
Sem o --source=HEAD, o git restore vai buscar a versão ao que juntaste com git add, não ao último commit. E com --source=HEAD a versão juntada fica na área de preparação; para deitar fora as duas, git restore --source=HEAD --staged --worktree -- index.html. No livro vais ver a forma antiga, git checkout HEAD -- index.html, com o mesmo efeito no ficheiro.
O agente ao lado
Não tens de decorar nada disto. O Claude Code e o Codex sabem usar o Git e podes pedir-lhes que o façam por ti. Nos pedidos de autorização, quem decide és tu, por isso tens de perceber o que autorizas.
Inicia o Git nesta pasta e faz o primeiro commit com a mensagem «Primeira versão da página da padaria».
Antes de cada comando, explica-me numa frase o que ele faz e espera pela minha autorização.
E no fim de qualquer trabalho:
Explica-me, comando a comando, o que fizeste no Git nesta sessão e o que ficou guardado.
Dica
Faz um commit no fim de cada tarefa que correu bem. Muitos commits pequenos são melhores do que um grande: se algo correr mal, recuas pouco.
Os ramos (versões paralelas da pasta) ficam para o Nível 2: se o git status falar em «branch main» ou «branch master», ignora por agora.
Uma cópia fora do computador: conta no GitHub
O Git guarda as fotografias no teu computador. Se o disco avariar, vão com ele. O GitHub é um serviço onde guardas uma cópia do repositório na internet. Vais precisar dele também na lição 8, para pôr um site online.
- Abre a página de registo do GitHub e segue os passos. Também dá para entrar com uma conta Google ou Apple.
- Confirma o email. Sem isso há tarefas básicas que o GitHub não te deixa fazer.
- Escolhe o nome de utilizador com calma: vai aparecer no endereço do teu site,
nome.github.io. - Se te propuser a verificação em dois passos, aceita.
Por agora não envies nada para lá. Isso fica para a lição 8.
Dica
O email do git config fica escrito em cada commit e, num repositório público, qualquer pessoa o vê. Nas definições de email do GitHub há a opção «Keep my email addresses private», que te dá um endereço «noreply» para usares no git config em vez do teu.
Há alternativas ao GitHub, como o GitLab ou o Codeberg (europeu). Neste curso usamos o GitHub porque o GitHub Pages, da lição 8, funciona com uma conta gratuita.
Exercício
Como sei que ficou bem git log --oneline mostra duas linhas, uma por commit. Depois do git restore, a linha apagada voltou e o git status diz que não há nada para guardar (em inglês, «nothing to commit, working tree clean»).
Se não deu
- «Author identity unknown» ou «Please tell me who you are»: falta o
git configcom o nome e o email. - «nothing to commit» no primeiro commit: a pasta está vazia ou faltou o
git add .. - «not a git repository»: estás na pasta errada ou esqueceste o
git init. Vê onde estás compwde entra na pasta certa comcd. - O
git logencheu o ecrã e não sai: carrega na teclaq. - O
git statusmostra ficheiros que não conheces: pergunta ao agente o que são antes de fazeres commit.
Vídeos
Explica, com analogias, Git e GitHub, add e commit, .gitignore, branches, merge e pull requests.
Explica como o Git funciona por dentro: commits, branches, HEAD, staging, checkout, reset e revert, rebase e reflog.
Testa o que aprendeste
Correcções a esta lição (2)
- : Segunda revisão externa: antes do `git restore`, vê-se `git diff HEAD -- index.html` e `git diff --staged -- index.html`; o `git restore --source=HEAD` deixa a versão juntada na área de preparação, e a lição dá o comando para deitar fora as duas.
- : Depois de uma revisão externa: cria-se um ficheiro antes do primeiro commit; a lição explica `git diff` e `git diff --staged` e que os ficheiros novos só aparecem no `git status`; a pergunta 3, sobre o `git restore`, foi corrigida. As opções do quiz foram reordenadas.