Em materias anteriores aprendemos a utilização do comando merge, que nada mais é do que a junção dos commits feitos em outras ramificações (branchs) dentro de outras (branch principal ou branchs secundárias).
No caso do merge, ele cria um único commit que representa todas as modificações realizadas em uma única branch:
Ou seja, de acordo com a ilustração acima, supondo que foram feitos 2 commits na branch master, e em seguida criamos uma outra branch (secundária) aonde realizamos 3 commits.
Quando executarmos um merge (na branch master), o git criará um commit que representa todos os commits que foram realizados na branch secundária.
Isso é, caso a operação não seja do tipo Fast-Foward, pois como vimos, em operações como essas, o git simplesmente pega todos os commits da branch secundária e joga cada um deles dentro da branch principal.
Ainda com relação ao comando merge, nós vimos que ele não é um comando destruidor de “universos alternativos” (branchs).
O que significa dizer, que ele não destrói o histórico de commits do nosso projeto, fazendo com que a gente consiga visualizar todo o histórico e as possíveis ramificações por meio do comando git log e suas flags, onde conseguimos visualizar tudo o que ocorreu antes e depois do merge.
Com isso em mente já podemos conhecer o comando Rebase.