git merge
git merge: fazer merge das alterações de outra branch na branch atual.
O comando git merge é usado para integrar as alterações de uma branch em outra. O objetivo do merge é combinar o trabalho feito em branches diferentes em uma única branch, normalmente a branch principal de desenvolvimento.
O merge é uma operação comum nos fluxos de trabalho do Git, principalmente quando se trabalha em funcionalidades ou correções de bugs em branches separadas. Quando o trabalho em uma branch está concluído e revisado, ela pode ser mergeada de volta na branch principal (ou em qualquer outra branch de destino) para incorporar essas alterações.
Existem dois tipos principais de merge no Git:
-
Merge fast-forward: Esse tipo de merge acontece quando a branch de destino não divergiu da branch de origem. Nesse caso, o Git simplesmente move o ponteiro da branch de destino para o commit mais recente da branch de origem. Nenhum commit de merge novo é criado, porque a branch de origem já está à frente da branch de destino.
-
Commit de merge: Quando a branch de destino divergiu da branch de origem (ou seja, as duas branches têm commits novos), o Git cria um novo commit que combina as alterações das duas branches. Esse é o chamado commit de merge, e ele tem dois commits pais: um da branch de destino e um da branch de origem.
Os merges fast-forward são a melhor opção para manter o histórico de commits limpo e linear. Curiosamente, isso muitas vezes é alcançado sem o git merge, usando o comando git rebase. Em vez de criar uma salada de commits, em que os commits da sua branch ficam misturados com os commits que vêm da outra branch, o rebase pega todos os commits da outra branch e aplica todos os seus commits por cima deles, criando um histórico linear.
Às vezes, o merge pode resultar em um conflito de merge, se as mesmas linhas de código foram modificadas nas duas branches. Nesses casos, o Git vai marcar as linhas em conflito nos arquivos afetados, e você vai precisar resolver os conflitos manualmente, editando os arquivos e decidindo quais alterações manter.
Lembre-se: antes de mergear, costuma ser uma boa prática garantir que a sua branch atual está em dia com as alterações mais recentes do repositório remoto, fazendo um git fetch seguido de um git merge ou git rebase com a branch remota. Isso pode ajudar a evitar conflitos e a manter o histórico mais limpo.
Exemplos
Faça merge da branch new-feature na branch atual:
git merge new-featureFaça merge da branch login-form-bugfix na branch atual, criando um commit de merge mesmo que pudesse ser um merge fast-forward:
git merge --no-ff login-form-bugfixAborte um merge que tem conflitos:
git merge --abortDepois de resolver os conflitos, conclua o merge:
git add .git merge --continue
.gitignoregit checkoutgit configgit taggit worktree