Olá Gabriel,
a dúvida entre a diferença do git rebase
e do git merge
é algo bem específico e interessante que sempre surge quando começamos a entender o git de verdade.
Respondendo à sua pergunta: sim, podemos utilizar os dois. Isso acontece pois o git merge
e o git rebase
resolvem exatamente o mesmo problema: integrar as mudanças de uma branch em outra. A diferença é no modo em que os dois funcionam.
O git merge
funciona criando um commit de mesclagem (merge
) entre as duas branches.
O git rebase
coloca os novos commits da master no início da sua branch de desenvolvimento e sobrescreve tudo que você fez nela, recolocando os seus commits supondo que você iniciou a sua branch quando os novos commits da master já tinham sido incluídos. Isso deve ser feito apenas quando a sua branch de desenvolvimento não é pública pois o rebase
reescreve o histórico de todas as pessoas que tenham acesso a essa branch (inclusive, o git só vai deixar você subir uma branch onde foi utilizado o rebase
se você utilizar o modificador --force
).
É claro que isso depende do fluxo do ambiente de trabalho. Se todos estiverem cientes de que rebases serão feitos em branches públicas, isso pode funcionar, mas o importante é saber exatamente o que está acontecendo por trás, pois o git
é bastante complexo por trás dos panos.