Git Tutorial - Rebase

Jinku Hu 15 fevereiro 2024
  1. O que é git rebase?
  2. Workflow de Rebase
  3. Regra de ouro do rebaseamento
Git Tutorial - Rebase

Nós cobrimos fusões básicas como

  • Fusão rápida

  • Fusão em três vias (recursiva)

Neste tutorial, vamos introduzir uma das características mais importantes do Git - rebasing.

O que é git rebase?

Rebase significa que você está mudando o commit da raiz dos ramos baseado, ou em outras palavras, você está resetando o commit da base para o commit recente do ramo que você está planejando fundir, como o ramo master.

Vamos ver como isto se parece,

Ramo de Destaques Git

Nós temos os ramos master e Feature neste diagrama e enquanto trabalhávamos no nosso ramo Feature, outros membros da equipe continuaram a fazer algum trabalho no master.

Nós queremos rebasear nosso branch antes de fundi-lo de volta no master e quando rodamos o comando rebase, ele muda o commit em que nosso branch de testes é baseado ao invés de apontar para C3 ao invés de C1. O gráfico abaixo mostra o que acontece após o rebase.

Ramo de Característica de Git

Quando fundimos as alterações, só tem de fazer uma fusão rápida novamente, porque os commits são agora baseados no último commit do master. É por isso que o rebasing é uma das características mais poderosas do git.

Depois que você fundir este ramo rebased Feature para o master, o gráfico de log de commit será como abaixo,

Gráfico de Git log após rebaseamento

Parece que o ramo Feature nunca existiu e todos os registros de commit estão na linha reta.

Workflow de Rebase

  • Criar o ramo de característica
   $ git checkout -b Feature
  • Faça mudanças neste ramo e comprometa-se
   $ git add modified.txt
   $ git commit -m 'coment here'
  • Rebase ramo de recurso para master
   $ git rebase master
  • Fundir o ramo de recursos rebaixado no master
   $ git checkout master
   $ git merge Feature

Regra de ouro do rebaseamento

A regra de ouro é nunca rebaixar um ramo que você disponibilizou publicamente por causa da reescrita da história.

Se você rebase um ramo público e alguém trabalha fora desse ramo depois que você rebase obter essas novas alterações no seu ramo master será muito difícil porque os outros desenvolvedores ainda trabalham com o ramo original master.

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook