Git é o sistema de controle de versão mais usado no mundo — presente em virtualmente todas as empresas de tecnologia. GitHub é a plataforma de hospedagem de repositórios Git mais popular. Aprender Git e GitHub não é opcional para quem quer trabalhar como desenvolvedor — é um pré-requisito tão fundamental quanto saber escrever código. Este guia cobre os conceitos essenciais e os comandos que você vai usar todos os dias.
O que é controle de versão e por que você precisa?
Controle de versão registra todo o histórico de mudanças no seu código ao longo do tempo. Com Git, você pode: voltar para qualquer versão anterior do código (desfazer mudanças que quebraram tudo), trabalhar em novas funcionalidades sem arriscar o código que já funciona (branches), colaborar com outros desenvolvedores sem sobrescrever o trabalho um do outro, e entender quando e por que cada linha de código foi adicionada. Sem controle de versão, equipes de desenvolvimento recorrem a pastas nomeadas “versão_final”, “versão_final_2”, “versão_ESSA_MESMO” — um caos que qualquer pessoa que já viveu reconhece imediatamente.
Instalação e configuração inicial
Baixe Git em git-scm.com. Após instalar, configure seu nome e email (obrigatório para commits):
git config --global user.name "Seu Nome"
git config --global user.email "seu@email.com"
Para GitHub, crie uma conta gratuita em github.com. A autenticação recomendada hoje é via SSH ou Personal Access Token — o GitHub descontinuou autenticação por senha em 2021.
Os três estados do Git e o fluxo básico
Git tem três áreas: Working Directory (seus arquivos locais que você edita), Staging Area (área de preparação para o próximo commit), e Repository (histórico de commits). O fluxo de trabalho diário:
# Inicializa repositório Git na pasta atual
git init
# Verifica o status dos arquivos (modificados, novos, staged)
git status
# Adiciona arquivo(s) à staging area
git add arquivo.js # arquivo específico
git add . # todos os arquivos modificados
# Cria um commit com os arquivos staged
git commit -m "Adiciona formulário de login"
# Envia para o GitHub (remote chamado 'origin', branch 'main')
git push origin main
Branches: trabalhe em paralelo com segurança
Branch é uma linha isolada de desenvolvimento. A branch principal (main ou master) deve sempre ter código estável e funcional. Novas funcionalidades, bugfixes e experimentos são feitos em branches separadas e só integrados ao main depois de testados:
# Ver todas as branches
git branch
# Criar e mudar para nova branch
git checkout -b feature/pagina-contato
# Trabalhando... commits na nova branch...
# Volta para main
git checkout main
# Integra a branch de feature no main
git merge feature/pagina-contato
# Remove a branch (já integrada)
git branch -d feature/pagina-contato
Clonando e colaborando no GitHub
Para trabalhar com um repositório remoto existente:
# Clona repositório do GitHub para sua máquina
git clone https://github.com/usuario/repositorio.git
# Busca mudanças do remoto sem integrar ainda
git fetch origin
# Busca e integra mudanças do remoto (fetch + merge)
git pull origin main
O fluxo de colaboração padrão: você cria uma branch, faz commits, envia a branch para o GitHub (git push origin nome-da-branch), e abre um Pull Request (PR) no GitHub para que outra pessoa revise e aprove o merge no main. Esse fluxo, chamado GitHub Flow, é usado pela maioria das empresas de tecnologia.
Comandos para situações de emergência
# Desfaz mudanças não commitadas em um arquivo
git checkout -- arquivo.js
# Desfaz o último commit (mantém as mudanças no working directory)
git reset HEAD~1
# Ver histórico de commits
git log --oneline
# Salva mudanças temporariamente sem commitar
git stash
git stash pop # restaura depois
Git tem uma curva de aprendizado que parece íngreme no começo, mas os comandos do dia a dia são poucos — você vai usar add, commit, push, pull, checkout e branch em 90% das situações. O resto você aprende conforme a necessidade aparece.
Tem um projeto em mente?
Somos especialistas em transformar ideias em produtos digitais. Apps, sites, automações e IA — vamos construir juntos.