Quem aprende Git costuma decorar comandos soltos e travar na primeira situação fora do roteiro. Na prática, o uso diário gira em torno de poucos comandos e de um raciocínio simples. Com ele, você também aprende a voltar atrás sem medo, que é justamente o que o Git foi feito para oferecer.
O básico do que é Git e GitHub está em Git e GitHub para iniciantes. Aqui o foco é o uso cotidiano.
O modelo mental: três áreas
Entender onde as alterações estão evita a maior parte das confusões:
- Pasta de trabalho: seus arquivos como estão agora, com as edições que você fez.
- Área de preparação (stage): as alterações que você escolheu para entrar no próximo commit.
- Histórico (repositório): os commits já gravados.
Você edita na pasta de trabalho, escolhe o que preparar e grava no histórico. Cada comando mexe em uma dessas áreas.
O ciclo básico em quatro comandos
- git status: mostra o que foi modificado, o que está preparado e o que ainda não é rastreado. Use o tempo todo; é o seu painel.
- git add arquivo: coloca as alterações do arquivo na área de preparação. Para tudo de uma vez, use um ponto no lugar do nome, mas confira antes com o status o que será incluído.
- git commit -m "mensagem": grava no histórico o que está preparado, com a mensagem que descreve a mudança.
- git push: envia os commits para o repositório remoto, como o do GitHub.
Para ver o histórico, git log; para ver o que mudou, git diff, que mostra as linhas alteradas ainda não preparadas.
Boas mensagens de commit
Uma boa mensagem economiza muito tempo no futuro:
- escreva no tempo verbal que preferir, mas mantenha o padrão (por exemplo, “corrige”, “adiciona”, “remove”);
- seja específico: “corrige cálculo de frete para CEP sem número” diz muito mais que “ajustes”;
- um commit por assunto: não misture correção de bug com mudança de visual.
Branches: trabalhar sem mexer no que funciona
Uma branch (ramo) é uma linha paralela de commits. A principal costuma se chamar main. Quando você vai criar um recurso ou testar algo arriscado, cria uma branch, trabalha nela e só junta à principal quando estiver pronto.
Comandos principais:
- git switch -c nome-da-branch: cria e muda para uma nova branch;
- git switch nome: muda de branch;
- git branch: lista as branches;
- git merge nome: junta uma branch à atual.
Se duas branches mexerem na mesma linha, aparece um conflito. Isso tem solução tranquila, explicada em conflito de merge no Git: como resolver.
Mesmo trabalhando sozinho, vale usar branches para testar ideias. Se não gostar do resultado, você volta à main e apaga a branch.
Como desfazer, de acordo com a situação
A pergunta certa é: em que ponto está a alteração que você quer desfazer?
Mudei um arquivo e quero descartar a alteração
Se ainda não fez commit, o comando é git restore nome-do-arquivo. Ele traz o arquivo de volta ao último estado gravado. Atenção: o que você editou e não gravou é perdido, sem como recuperar.
Preparei com add e me arrependi
Use git restore --staged nome-do-arquivo. O arquivo sai da área de preparação, mas a edição continua na pasta de trabalho.
Fiz o commit e vi um erro na mensagem ou esqueci um arquivo
Se ainda não deu push, git commit --amend altera o último commit. Evite usar depois de ter enviado, porque reescreve o histórico.
Quero desfazer um commit que já foi para o repositório
Use git revert seguido do identificador do commit (você o vê com git log). Ele cria um novo commit que faz o inverso do anterior. O histórico fica preservado, o que é o mais seguro quando outras pessoas já baixaram o código.
Quero voltar vários commits atrás
O git reset faz isso, mas é poderoso e potencialmente destrutivo, principalmente a variante com a opção de descartar alterações. Use só em commits que você ainda não enviou, e tenha certeza do que faz. Em caso de dúvida, crie uma branch de backup antes (git branch backup) e então experimente.
Quando algo parece perdido
O Git guarda mais do que parece. O git reflog mostra os movimentos recentes do repositório, incluindo commits que pareciam sumidos depois de um reset. Se você já gravou algo, quase sempre é possível recuperar. O que é muito difícil recuperar é o que nunca foi commitado.
Por isso o melhor seguro é commitar com frequência. Com ou sem IA no processo, faça um commit antes de uma mudança grande (veja assistente de código com IA).
Arquivos que não devem entrar
O arquivo .gitignore lista o que o Git deve ignorar: senhas, a pasta de dependências, arquivos temporários e do sistema. Crie-o no começo do projeto. Se um arquivo já foi commitado antes de entrar no .gitignore, ele continua sendo rastreado até você removê-lo do controle do Git.
Hábitos que facilitam a vida
- Commite pequeno e com frequência.
- Rode git status antes de qualquer coisa.
- Use uma branch para cada assunto.
- Faça push no fim do dia: o repositório remoto também é um backup.
- Em dúvida antes de um comando destrutivo, pare e crie uma branch de segurança.
Com esse conjunto, você usa o Git como rede de proteção, não como fonte de medo. Pratique em um projeto de teste: crie um arquivo, faça commits, crie uma branch, erre de propósito e desfaça. Dois ou três exercícios assim dão a confiança de que falta.