Branches e merge
Git & GitHub • Módulo 2: Trabalhando com branches • Codding — material para estudo offline
Aluno: ______________________________ Data: ____ / ____ / ______
Nesta aula, você vai compreender Branches e merge com explicação progressiva, exemplo resolvido, checagens e prática. Nada de apenas copiar: cada etapa prepara a próxima.
Objetivos da aula
- Explicar Branches e merge com suas próprias palavras
- Reconhecer as partes importantes em um exemplo real
- Identificar e corrigir os erros mais frequentes
- Aplicar o conteúdo em uma atividade prática
Pré-requisito: Leia a aula anterior do módulo se algum termo parecer novo. Você pode testar o exemplo antes de continuar. • Duração: 50–75 min
Explicação passo a passo
1. O que é Branches e merge
Git guarda snapshots do projeto. Cada commit é um ponto no tempo com autor, mensagem e pai — por isso dá para voltar, comparar e trabalhar em paralelo sem medo.
Checkpoint: O que git add faz? — Resposta: Move as mudanças para a área de staging, preparando o commit
2. Como pensar antes de fazer
O fluxo básico tem três áreas: diretório de trabalho → área de staging (git add) → repositório (git commit). Entender essa separação explica por que 'salvei o arquivo' não é 'commitei'.
Dica: Não decore a forma. Tente explicar com suas palavras qual problema “Branches e merge” resolve.
3. Exemplo completo, do início ao resultado
Branch é um ponteiro barato para um commit. Trabalhe cada tarefa em uma branch, abra um pull request e faça merge só depois da revisão — a main fica sempre funcionando.
git checkout -b feature/login # nova branch
git add src/login.js # staging
git commit -m "feat: tela de login"
git push -u origin feature/login # envia e vincula
git checkout main
git pull # atualiza antes de integrar
git merge feature/login
git log --oneline -5 # histórico curto
git restore --staged arquivo.txt # tira do staging sem perder mudanças
| Trecho | O que faz |
|---|
git checkout -b feature/login # nova branch | Contribui para a transformação principal mostrada neste exemplo. |
git add src/login.js # staging | Contribui para a transformação principal mostrada neste exemplo. |
git commit -m "feat: tela de login" | Contribui para a transformação principal mostrada neste exemplo. |
git push -u origin feature/login # envia e vincula | Contribui para a transformação principal mostrada neste exemplo. |
git checkout main | Contribui para a transformação principal mostrada neste exemplo. |
git pull # atualiza antes de integrar | Contribui para a transformação principal mostrada neste exemplo. |
git merge feature/login | Contribui para a transformação principal mostrada neste exemplo. |
git log --oneline -5 # histórico curto | Contribui para a transformação principal mostrada neste exemplo. |
Dica: Sempre atualize a main antes do merge: metade dos conflitos surge de trabalhar sobre uma base velha.
Checkpoint: Um conflito de merge significa que: — Resposta: Duas branches alteraram a mesma linha e você precisa decidir o resultado
4. Do detalhe para o todo
Conflito não é erro: acontece quando duas branches mudam a mesma linha. Git marca <<<<<<< / ======= / >>>>>>>; você escolhe o conteúdo final, remove os marcadores, add e commit.
5. Erros comuns e como corrigi-los
1. Commits gigantes com mensagem 'ajustes'.
2. Commitar segredos (.env, chaves) — o histórico é público para sempre.
3. Fazer merge sem dar pull na base primeiro.
Dica: Quando algo der errado, compare uma diferença por vez com o exemplo. Evite mudar várias partes ao mesmo tempo.
Prática guiada
1. 1. Faça funcionar
Laboratório de Branches e merge: execute o exemplo, identifique entrada, processamento e saída e altere pelo menos um valor para observar como o resultado muda.
git checkout -b feature/login # nova branch
git add src/login.js # staging
git commit -m "feat: tela de login"
git push -u origin feature/login # envia e vincula
git checkout main
git pull # atualiza antes de integrar
git merge feature/login
git log --oneline -5 # histórico curto
git restore --staged arquivo.txt # tira do staging sem perder mudanças
Dica: Volte ao exemplo resolvido e compare a estrutura. Commits gigantes com mensagem 'ajustes'.
2. 2. Preveja antes de testar
Sem executar, explique qual resultado o exemplo de Branches e merge deve produzir e qual parte é responsável por ele.
Minha previsão:
A parte responsável pelo resultado:
Como vou conferir:
Dica: Use o modelo mental da aula: entrada, transformação e evidência observável.
3. 3. Encontre e corrija o erro
Use o exemplo de Branches e merge, identifique um risco citado na aula e registre ou implemente a correção.
git checkout -b feature/login # nova branch
git add src/login.js # staging
git commit -m "feat: tela de login"
git push -u origin feature/login # envia e vincula
git checkout main
git pull # atualiza antes de integrar
git merge feature/login
git log --oneline -5 # histórico curto
git restore --staged arquivo.txt # tira do staging sem perder mudanças
Dica: Commits gigantes com mensagem 'ajustes'.
4. 4. Aplique em um caso novo
Crie uma variação própria usando Branches e merge. Mude os dados ou o cenário e demonstre que o resultado continua correto.
git checkout -b feature/login # nova branch
git add src/login.js # staging
git commit -m "feat: tela de login"
git push -u origin feature/login # envia e vincula
git checkout main
git pull # atualiza antes de integrar
git merge feature/login
git log --oneline -5 # histórico curto
git restore --staged arquivo.txt # tira do staging sem perder mudanças
Dica: Mantenha a estrutura que já funcionou e altere uma decisão por vez.
Revisão
- Git guarda snapshots do projeto. Cada commit é um ponto no tempo com autor, mensagem e pai — por isso dá para voltar, comparar e trabalhar em paralelo sem medo.
- Sempre atualize a main antes do merge: metade dos conflitos surge de trabalhar sobre uma base velha.
- Evite: Commits gigantes com mensagem 'ajustes'.
- Evite: Commitar segredos (.env, chaves) — o histórico é público para sempre.
Exemplo comentado
git checkout -b feature/login # nova branch
git add src/login.js # staging
git commit -m "feat: tela de login"
git push -u origin feature/login # envia e vincula
git checkout main
git pull # atualiza antes de integrar
git merge feature/login
git log --oneline -5 # histórico curto
git restore --staged arquivo.txt # tira do staging sem perder mudanças
Sempre atualize a main antes do merge: metade dos conflitos surge de trabalhar sobre uma base velha.
Erros comuns
- Commits gigantes com mensagem 'ajustes'.
- Commitar segredos (.env, chaves) — o histórico é público para sempre.
- Fazer merge sem dar pull na base primeiro.
Quiz e gabarito completo
1. O que git add faz?
- a) Salva o commit
- b) Move as mudanças para a área de staging, preparando o commit
- c) Envia para o GitHub
- d) Cria uma branch
Gabarito: b) Move as mudanças para a área de staging, preparando o commit — add prepara; commit registra; push envia.
2. Um conflito de merge significa que:
- a) O repositório corrompeu
- b) Duas branches alteraram a mesma linha e você precisa decidir o resultado
- c) Faltou fazer commit
- d) A branch não existe
Gabarito: b) Duas branches alteraram a mesma linha e você precisa decidir o resultado — Git não adivinha a intenção; você resolve e commita.
Codding • Git & GitHub • Branches e merge • Prova final e certificado em codding.lovable.app/cursos/git-github/prova