O Git é um sistema de controle de versão distribuído - uma ferramenta para rastrear alterações feitas em um conjunto de arquivos ou coordenar o trabalho ao longo do tempo. É frequentemente usado pelos programadores para coordenar alterações no código fonte do software e na melhor parte; pode ser usado para rastrear qualquer tipo de conteúdo. Foi especialmente projetado para lidar com tudo, desde projetos de pequeno a grande volume, com a máxima velocidade e eficiência. É um significado extremamente flexível: os indivíduos podem compartilhar o trabalho diretamente entre seus repositórios pessoais e os grupos podem coordenar seu fluxo de trabalho por meio de um repositório central. Ele simplesmente permite que dois desenvolvedores em dois locais diferentes façam e registrem alterações de forma independente, tudo sem um repositório central.
A mesclagem é uma prática comum no Git usada para integrar alterações de uma ramificação para outra. Git merge é um comando que confirma alterações em outro local. Ele permite que os desenvolvedores tomem suas linhas de código independentes criadas pela ramificação Git e as integrem em uma única ramificação. Isso altera apenas o ramo de destino enquanto o histórico do ramo de origem permanece. O rebit do Git é outro comando usado basicamente para o mesmo propósito, exceto que o faz de maneira bem diferente. Ambos fazem a mesma coisa - incorporam confirmações de um ramo para outro - mas a diferença está em como o fazem. Destacamos alguns pontos-chave de comparação comparando os dois.
Git merge é um comando que unifica duas ou mais ramificações do histórico de confirmação. Uma mesclagem geralmente une apenas duas ramificações, embora o Git suporte a mesclagem de três, quatro ou mais ramificações ao mesmo tempo. A mesclagem do Git é usada pelo pull do Git para incorporar alterações de uma ramificação para outra ou de outro repositório completamente. A mesclagem deve ocorrer em um único repositório, o que significa que todas as ramificações que precisam ser mescladas devem estar presentes no mesmo repositório. As situações de mesclagem geralmente resultam de dois ou mais usuários, tentando atualizar o código comum. Geralmente, um usuário mescla uma ramificação em outra ramificação em seu repositório local em um ambiente local. O Git merge integra especificamente o conteúdo de uma ramificação de origem com uma ramificação de destino. O ramo de destino é alterado, enquanto o ramo de origem permanece.
A rebase do Git é mais uma alternativa à mesclagem usada para integrar outra ramificação à ramificação em que você está trabalhando atualmente, exceto que mantém um histórico de consolidação linear. O objetivo do rebase do Git é mover uma ramificação de um local para outro. Como as confirmações são imutáveis, elas não podem ser movidas, portanto, isso implica fazer novas confirmações com os mesmos conjuntos de alterações e metadados. Uma rebase altera fundamentalmente a noção de quando e onde uma sequência de confirmações foi desenvolvida, o que resulta na perda de alguns aspectos do histórico de desenvolvimento. Isso significa que o commit original no qual o desenvolvimento foi originalmente baseado será alterado. Ele efetivamente incorpora todas as novas confirmações no ramo mestre reescrevendo o histórico. Como resultado, ele cria novas confirmações para cada confirmação na ramificação original.
- Embora mesclagem e rebase sejam as formas mais comuns de integrar mudanças no Git e elas tenham o mesmo objetivo - combinar várias ramificações em uma - a diferença está na maneira como elas são atingidas. A mesclagem Git integra o conteúdo de uma ramificação de origem com uma ramificação de destino, preservando a ancestralidade de cada histórico de consolidação, enquanto a rebase do Git incorpora todos os novos commits no branch master, reescrevendo o histórico, criando novos commits para cada commit no branch de origem..
- Com a mesclagem Git, você primeiro alterna para a ramificação a ser mesclada e, em seguida, usa o comando mesclar para selecionar uma ramificação na qual mesclar. Dado que uma ramificação aponta para uma confirmação e que uma confirmação é a granularidade à qual você associa alterações, a mesclagem O comando mescla no nível de ramificação ou confirmação. Rebase, por outro lado, é um pouco diferente. Primeiro, você seleciona uma ramificação para rebase e depois usa o comando rebase para selecionar onde colocá-la.
- A mesclagem cria uma nova confirmação que representa a mesclagem entre duas ramificações. Ele integra alterações de diferentes linhas paralelas de desenvolvimento (ramificações) juntas, criando um commit de mesclagem. O objetivo é unir duas ou mais ramificações, incluindo todas as alterações desde o ponto de divergência na ramificação atual. Avanço rápido é o comportamento de mesclagem padrão no Git. Por outro lado, rebasear alterar alterações individuais, reescrevendo o histórico do projeto, criando novas confirmações para cada confirmação na ramificação original, o que resulta em histórico linear sem ramificações divergentes..
- A mesclagem Git não altera o histórico, enquanto preserva o contexto da ramificação, o que significa que as ramificações existentes não são alteradas de forma alguma. Ele cria uma nova confirmação (a menos que tenha sido uma mesclagem de avanço rápido), mas as confirmações permanecem acessíveis a partir da ramificação. Por outro lado, o Git rebase simplifica uma história potencialmente complexa. As confirmações são reescritas, as versões antigas são esquecidas e o DAG das revisões é alterado. As confirmações não são mais alcançáveis com a reorganização, o que significa que você não pode mais reestruturar as ramificações publicadas.
Bem, em poucas palavras, mesclagem e rebase são as duas maneiras de integrar mudanças no Git, mas diferem na maneira como fazem isso. A mesclagem é uma operação de uma etapa com um local para resolver conflitos e as confirmações acessíveis pela ramificação permanecem acessíveis. A rebase, por outro lado, reaplica cada confirmação individualmente, reescrevendo o histórico, criando novas confirmações para cada confirmação na ramificação de origem. Portanto, o que antes era alcançável não é mais alcançável. Uma rebase muda fundamentalmente a noção de quando e onde uma sequência de confirmações foi desenvolvida.