Wilberhg's blog

Diferenças entre Git Merge e Git Rebase

Entendendo o Conceito

O Git disponibiliza diferentes estratégias para integrar alterações de uma branch em outra, sendo as principais o git merge e o git rebase. Embora ambas as operações tenham o objetivo de unificar o código, elas realizam esse processo de formas distintas e geram históricos de commits diferentes no repositório.

O git merge combina os históricos das branches e preserva o histórico cronológico original. Quando ocorre divergência entre as branches, o Git cria um commit específico de mesclagem, conhecido como "merge commit", que une as duas linhas de desenvolvimento. Essa operação mantém a integridade do histórico exatamente como ele aconteceu.

O git rebase reescreve o histórico de commits. Ele retira temporariamente os commits da branch atual, atualiza a base da branch com os commits mais recentes da branch de destino e reaplica os commits retirados um a um sobre essa nova base. Isso resulta em um histórico linear, sem a criação de um merge commit.

Passo a Passo

Alternativa A: Integrando alterações com Git Merge

  1. Acesse a branch de destino onde as alterações serão consolidadas:
git checkout main
  1. Execute o comando de mesclagem informando a branch de origem das alterações:
git merge feature-login
  1. Caso ocorram conflitos, resolva-os manualmente nos arquivos afetados.
  2. Adicione os arquivos resolvidos à área de preparação:
git add .
  1. Conclua o processo criando o commit de mesclagem:
git commit

Alternativa B: Integrando alterações com Git Rebase

  1. Acesse a branch local de desenvolvimento que receberá a nova base:
git checkout feature-login
  1. Execute o rebase apontando para a branch principal atualizada:
git rebase main
  1. Caso ocorram conflitos, edite manualmente os arquivos afetados.
  2. Adicione os arquivos resolvidos à área de preparação:
git add .
  1. Continue a aplicação dos commits restantes do rebase:
git rebase --continue
  1. Após concluir o rebase de todos os commits, mude para a branch principal:
git checkout main
  1. Realize a mesclagem rápida do tipo fast-forward:
git merge feature-login

Explicando o código

Os comandos utilizados envolvem parâmetros e opções específicas que determinam o comportamento do Git:

Observações

Referências

  1. GeeksforGeeks. Git - Difference Between Merging and Rebasing.
  2. DEV Community. Git Rebase vs Git Merge: A Comprehensive Guide.
  3. Refine. Git Merge vs. Git Rebase, The Ultimate Guide to Combining Branches.
  4. Built In. Git Rebase vs. Merge: Which to Use?.
  5. Stack Overflow. What's the difference between 'git merge' and 'git rebase'?.
  6. GitHub. What is the difference between git merge and git rebase in a typical workflow?.

#automation #development #git #programming #versioncontrol