Fluxo de Rebase para Atualização de Branches
Este guia detalha o fluxo de trabalho mais comum e direto para manter uma feature branch atualizada com a branch principal (master ou main), garantindo um histórico de commits linear e limpo.
⚠️ REGRA DE OURO: NUNCA utilize o rebase em branches públicas ou partilhadas com outros programadores.
1. A Sequência de Comandos
Este é o método mais eficiente, pois combina a descarga de dados e a reaplicação dos commits num único passo.
# 1. Mudar para a sua branch de trabalho
git checkout dev_charles
# 2. Atualizar a sua branch com a base da master (Atalho simplificado)
git pull --rebase origin master
# 3. Atualizar o servidor com o novo histórico (requer força)
git push origin dev_charles --force-with-lease
2. O que acontece em cada etapa?
git checkout dev_charles
Garante que está posicionado na branch correta onde o trabalho está a ser desenvolvido.
git pull --rebase origin master
Este é o comando principal e o mais utilizado no dia-a-dia. Ele faz duas coisas automaticamente:
Fetch: Procura as novas atualizações da
masterno servidor.Rebase: Retira temporariamente os seus commits, aplica as novidades da
mastere volta a colocar os seus commits por cima.
Resultado: O seu histórico fica como se tivesse começado a trabalhar hoje, já com a versão mais recente do projeto.
git push origin dev_charles --force-with-lease
Como o rebase altera a identidade dos seus commits, o servidor remoto não aceitaria um envio comum. O --force-with-lease é a opção recomendada por ser mais segura que o -f tradicional, garantindo que não sobrescreve trabalho alheio por acidente.
3. Integração na Master (O "Merge Final")
Após o rebase e o push para a sua branch, o passo final é integrar o trabalho na master. Como a sua branch já está nivelada com a master, o Git realizará um Fast-forward merge.
# 1. Mudar para a master
git checkout master
# 2. Sincronizar a master local
git pull origin master
# 3. Fundir a sua branch (limpo e sem conflitos)
git merge dev_charles
# 4. Enviar o trabalho final para o servidor
git push origin master
4. Quando utilizar este fluxo?
Antes de integrar o código: Para garantir que não existem conflitos com a versão atual do projeto.
Histórico Linear: Para evitar o aparecimento de "Merge Commits" (mensagens automáticas de fusão) que poluem o log.
Organização: Facilita a leitura do histórico por outros membros da equipa.
5. Segurança (A Regra de Ouro)
NUNCA faça rebase em branches partilhadas. Se alterar o histórico de uma branch onde outros colegas estão a trabalhar (como a própria master), causará erros graves de sincronização para todos. Use-o apenas em branches que são exclusivamente suas.
6. Como realizar um Rollback (Reversão)
Se o código integrado causar problemas, a reversão é simples através do ID do commit:
# 1. Identifique o commit na master
git checkout master
git pull origin master
git log --oneline
# 2. Reverte o commit (cria um commit inverso)
git revert <ID_DO_COMMIT>
# 3. Envie a correção
git push origin master
Resumo: O uso do pull --rebase é a forma mais ágil de manter o projeto organizado e pronto para integraçã