Conteúdo do Curso
Fundamentos do GitHub
Fundamentos do GitHub
Realizando uma Operação de Rebase
Rebase de alterações na branch main
Antes de realizar o rebase das alterações, é necessário alternar para a branch main
e puxar as alterações mais recentes:
Agora, vamos analisar a árvore de commits:
Atualmente, tanto a branch main
quanto a feature/payment
possuem commits após o ancestral comum mais recente. Isso indica que um fast-forward merge não pode ser realizado.
Se essas branches fossem mescladas, ocorreria um three-way merge. No entanto, para manter o histórico linear, será realizado o rebase da branch feature/payment
sobre a branch main
. Isso pode ser feito alternando para a branch feature/payment
e executando o comando git rebase
:
Mesclagem Fast-forward
Como o rebase foi bem-sucedido, vamos analisar novamente nossa árvore de commits:
Como esperado, o histórico de commits agora está linear com o commit mais recente na branch feature/payment
. Agora, podemos realizar uma mesclagem fast-forward simples para a branch main
:
Vamos verificar se ambas as branches apontam para o mesmo commit analisando o commit mais recente:
Remoção da Branch de Funcionalidade
A branch main
agora contém o commit mais recente com o sistema de pagamento implementado, portanto, podemos remover com segurança tanto a branch local quanto a remota feature/payment
. O comando a seguir remove a branch remota:
Agora, podemos remover a branch local:
Por fim, todas as alterações realizadas podem ser enviadas novamente para o repositório remoto:
Para verificar se o branch feature foi excluído tanto localmente quanto remotamente, é possível executar o seguinte comando, que lista todos os branches locais e remotos (-a
significa todos):
Como pode ser observado, o branch feature/payment
foi excluído com sucesso, restando agora apenas dois branches: main
e john/test
com seus respectivos remotos.
De modo geral, o rebase funciona bem para alterações locais que ainda não foram compartilhadas, mas pode causar problemas significativos para alterações que já foram publicadas em um repositório remoto e possivelmente baixadas por outros colaboradores. Fazer rebase em commits que outros estão utilizando pode gerar confusão e conflitos devido à reescrita do histórico de commits.
Como regra geral, evite fazer rebase em alterações que já foram enviadas para repositórios remotos para prevenir esses problemas.
Obrigado pelo seu feedback!