Oi, Flávio! Tudo bom?
De início, peço desculpas pela demora em retornar!
Em alguns aspectos, o git rebase
se assemelha bastante com o git merge
, haja vista que ambos promovem a integração de uma branch com outra. Por esse motivo, tal como no git merge
, quando tentamos executar o comando git rebase
e há inconsistências entre commits, recebemos uma mensagem de erro avisando que há um conflito.
Para dar continuidade ao rebase, teremos que, inicialmente, resolver o conflito que nos foi apontado. Observe o passo a passo abaixo:
1 - Verificar o conflito: por meio do Git Bash, podemos executar o comando abaixo, o qual nos mostra a diferença entre o conteúdo presente na branch master e na branch novo-branch, separando os trechos de código conflitantes por uma linha dupla (=======
):
cat index.html
2 - Decidir qual parte do código desejamos manter: em vários editores de código, como o Visual Studio Code, é apresentado o mesmo retorno do comando que vimos acima (porém, de uma forma mais agradável). Além disso, ele nos dá a possibilidade de escolher qual alteração manteremos, veja um exemplo abaixo:
Partindo da imagem acima, note que em verde está o conteúdo presente na branch master e em roxo, o da branch new_branch. Acima disso há algumas opções que podemos clicar; após a tradução do Inglês para o Português, temos:
- Aceitar a mudança atual (o que foi feita na branch master);
- Aceitar a mudança recebida (o que foi feita na outra branch);
- Aceitar ambas as mudanças;
- Comparar mudanças.
Escolhida a alteração desejada, podemos partir para a etapa final.
3 - Ao voltar para o Git Bash, será preciso adicionar a nova modificação que fizemos na branch master:
git add .
4 - Ao fim, basta retomar a execução do git rebase
, desta maneira:
git rebase --continue
Depois de todos esses passos, podemos dar continuidade ao nosso projeto, realizando um commit e fazendo push para o nosso repositório remoto:
git commit -m "Escreva aqui uma descrição breve sobre a modificação"
git push local master
“Voltar no tempo” a partir dos comandos que você abordou (como o git checkout
) e juntamente utilizar o git rebase
, é uma ótima maneira de trabalhar no desenvolvimento de um projeto, visto que evitamos, por exemplo, possíveis problemas na branch principal. Nesses momentos, a aparição de conflitos é, de todo modo, comum, principalmente quando trabalhamos em uma equipe de desenvolvimento. Analisar os erros e entrar em um acordo com o nosso time para decidir quais alterações devem permanecer fará parte deste processo.
Caso tenha se interessado pelo assunto e gostaria de se aprofundar nele, recomendo assistir a Websérie super interessante da Alura "Git e Github para sobrevivência"! Um dos episódios, inclusive, aborda o uso do git rebase
.
Você pode acessá-la a partir do link abaixo:
Espero que tenha compreendido minha explicação, Flávio. Fico à disposição para ajudá-lo caso tenha mais alguma dúvida!
Abraços e até mais.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.