Saltar para o conteúdo
← Inforjota
Cursos Inforjota English

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.

  1. Abre a página de registo do GitHub e segue os passos. Também dá para entrar com uma conta Google ou Apple.
  2. Confirma o email. Sem isso há tarefas básicas que o GitHub não te deixa fazer.
  3. Escolhe o nome de utilizador com calma: vai aparecer no endereço do teu site, nome.github.io.
  4. 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 config com 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 com pwd e entra na pasta certa com cd.
  • O git log encheu o ecrã e não sai: carrega na tecla q.
  • O git status mostra ficheiros que não conheces: pergunta ao agente o que são antes de fazeres commit.

Vídeos

Oque é Git e Github explicado com bananas | Coisas que você precisa saber!
Primata Hub · 11 min · PT-BR · legendas · Ver no YouTube
Explica, com analogias, Git e GitHub, add e commit, .gitignore, branches, merge e pull requests.
Git Will Finally Make Sense After This
LearnThatStack · 13 min · EN · legendas · Ver no YouTube
Explica como o Git funciona por dentro: commits, branches, HEAD, staging, checkout, reset e revert, rebase e reflog.

Testa o que aprendeste

1. Pedes ao agente para «arrumar o Git» e ele pede autorização para correr git reset --hard. Qual é a melhor reacção?
2. Acabaste de pôr o horário de Inverno na página da padaria. Qual é a melhor mensagem de commit?
3. Mudaste o index.html, ficou pior e ainda não fizeste commit. Queres que volte a ser como no último commit. O que fazes?

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.