Estou com duvida na diferença do git Merge e Rebase.
O merge e usando pelo o master para pegar os commits de uma outra branch ? E o Rebase para pegar os commits do master e ficar 'atualizado' ?
Estou com duvida na diferença do git Merge e Rebase.
O merge e usando pelo o master para pegar os commits de uma outra branch ? E o Rebase para pegar os commits do master e ficar 'atualizado' ?
Ambos os comandos resolvem o mesmo problema, só que de maneiras diferentes.
Imagine que você tem duas branchs: a "master" e a de "desenvolvimento". Com o tempo, você utiliza somente a "master", mas o seu colega somente utiliza a "desenvolvimento".
Caso você faça uma alteração importante na branch "master", o seu colega não iria obter essa alteração logo de cara na branch dele, pois são segmentos diferentes.
Para integrar essa alteração na branch "desenvolvimento", o seu colega terá essas duas opções: Merge ou Rebase.
O Merge fara um novo commit que "junta" todas as alterações, porém, ele será feito na branch de desenvolvimento somente. Ou seja, na sua branch, não iria mudar nada, somente a branch do seu colegal.
Já o Rebase moverá toda a branch "desenvolvimento" para o começo da branch "master", incorporando todos os commits do master. Ou seja, no seu projeto, todas as suas alterações na branch "master" serão incorporadas ao branch desenvolvimento do seu colega, mas ao invés de criar um novo commit, ele reescreverá a história do projeto criando novos commits. Agora, as branchs "master" e "desenvolvimento" não estarão paralelas, e sim uma branch "atrás" da outra.
Veja a imagem para um exemplo: http://hostingadvice.digitalbrandsinc.netdna-cdn.com/wp-content/uploads/2014/12/git-merge.gif
Espero ter ajudado.
Obrigado amigo!