Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Noções Básicas de Rebase | Fluxos de Trabalho Mais Avançados
Fundamentos do GitHub

Noções Básicas de Rebase

Deslize para mostrar o menu

Realizando um Commit no Branch main

Início com a realização de um commit diretamente no branch remoto main ao editar o arquivo README.md no repositório remoto. Isso fará com que o branch main e o branch feature/payment tenham um histórico de commits divergente.

Aqui está a linha adicionada ao arquivo:

New feature will soon be integrated.

Aqui está a respectiva mensagem de commit:

Add information about new feature in README.md

Compreendendo o Rebasing

Como mencionado no capítulo anterior, após a revisão e testes da branch feature, ela pode e deve ser mesclada de volta à branch main. Até agora, utilizamos apenas o comando git merge para esse propósito. No entanto, outra abordagem é utilizar o comando git rebase.

Note
Estude Mais

Rebasing é o processo de mover ou combinar uma sequência de commits para um novo commit base. Isso é feito ao reproduzir as alterações de uma branch em outra, resultando em um histórico linear de commits.

Quando criamos uma branch, o Git acompanha o último commit em ambas as branches. Se apenas uma branch tiver novas alterações, o Git pode avançar rapidamente e aplicar as mudanças. No entanto, se ambas as branches tiverem novas alterações, o Git cria um novo commit de merge, resultando em um merge de três vias.

Veja como seria um merge de três vias em nosso caso, onde C4 era o último commit na branch feature/payment antes da mesclagem:

Mesclagem de três vias

No entanto, mesclagens de três vias podem dificultar a depuração devido ao histórico dividido e não linear. Ao realizar o rebase, alteramos a base dos nossos commits e os reaplicamos sobre a nova base, permitindo que o Git execute uma mesclagem fast-forward e mantenha um histórico linear.

Aqui está uma animação para ilustrar como o rebase pode ser realizado neste caso (os identificadores dos commits não correspondem aos reais aqui):

rebase
Note
Nota

Ao fazer rebase em um branch, você está essencialmente reescrevendo seu histórico. Isso significa que os commits antigos são substituídos por novos, que possuem identificadores diferentes (hash sums) porque são baseados em snapshots diferentes do código. Como mostrado na animação acima, o identificador do commit no branch feature/payment mudou após o rebase.

question mark

Qual é o principal objetivo de usar git rebase em vez de git merge?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 4

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 3. Capítulo 4
some-alt