Branches e merge
Trabalhar numa linha do tempo separada sem afetar o main, e depois juntar tudo de volta.
Uma branch é uma linha do tempo paralela do projeto. main (ou master) é a branch principal, geralmente a versão "estável". Criar uma branch nova deixa você experimentar, quebrar coisa, tentar de novo — sem afetar main até você decidir juntar (merge) de volta.
Criando e trocando de branch
git branch feature/login # cria a branch
git checkout feature/login # troca pra ela
# ou os dois de uma vez:
git checkout -b feature/logingit switch -c feature/login # cria e troca — substitui "checkout -b" nas versões recentes do gitTrabalhando na branch
# edita arquivos normalmente...
git add .
git commit -m "Adiciona formulário de login"
git commit -m "Adiciona validação de senha"
git log --oneline
# 2 commits novos aqui, main não tem eles aindaMerge — juntando de volta
git checkout main # volta pra main
git merge feature/login # traz os commits da feature pra main"Fast-forward" significa que main não tinha nenhum commit novo desde que a branch foi criada — o merge simplesmente "avança" o ponteiro de main até onde a feature já estava. Quando os dois lados mudaram coisas diferentes, o git tenta combinar automaticamente (e às vezes não consegue — próxima lição).
Exercício
Você está em main e quer começar uma feature chamada "checkout". Escreva o comando que cria a branch e já troca pra ela, numa linha só.