Pular para o conteúdo principal

Fluxo de Rebase para Atualização de Branches


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:

  1. Fetch: Procura as novas atualizações da master no servidor.

  2. Rebase: Retira temporariamente os seus commits, aplica as novidades da master e 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?

  1. Antes de integrar o código: Para garantir que não existem conflitos com a versão atual do projeto.

  2. Histórico Linear: Para evitar o aparecimento de "Merge Commits" (mensagens automáticas de fusão) que poluem o log.

  3. 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çã