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
course content

Conteúdo do Curso

Fundamentos do GitHub

Fundamentos do GitHub

1. Introdução ao GitHub
2. Interação Básica com Repositórios Remotos
3. Fluxos de Trabalho Mais Avançados

book
Noções Básicas de Rebase

Realização de um Commit no Branch main

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

Linha adicionada ao arquivo:

Mensagem correspondente do commit:

Compreendendo o Rebasing

Como mencionado no capítulo anterior, após o branch feature ser revisado e testado, ele pode e deve ser mesclado de volta ao 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 um branch em outro branch, resultando em um histórico de commits linear.

Quando criamos um branch, o Git rastreia o commit mais recente em ambos os branches. Se apenas um branch tiver novas alterações, o Git pode avançar rapidamente e aplicar as mudanças. No entanto, se ambos os 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 no nosso caso, onde C4 era o commit mais recente no branch feature/payment antes da mesclagem:

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 em nosso caso (os identificadores dos commits não correspondem aos reais aqui):

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?

Select the correct answer

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

course content

Conteúdo do Curso

Fundamentos do GitHub

Fundamentos do GitHub

1. Introdução ao GitHub
2. Interação Básica com Repositórios Remotos
3. Fluxos de Trabalho Mais Avançados

book
Noções Básicas de Rebase

Realização de um Commit no Branch main

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

Linha adicionada ao arquivo:

Mensagem correspondente do commit:

Compreendendo o Rebasing

Como mencionado no capítulo anterior, após o branch feature ser revisado e testado, ele pode e deve ser mesclado de volta ao 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 um branch em outro branch, resultando em um histórico de commits linear.

Quando criamos um branch, o Git rastreia o commit mais recente em ambos os branches. Se apenas um branch tiver novas alterações, o Git pode avançar rapidamente e aplicar as mudanças. No entanto, se ambos os 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 no nosso caso, onde C4 era o commit mais recente no branch feature/payment antes da mesclagem:

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 em nosso caso (os identificadores dos commits não correspondem aos reais aqui):

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?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

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