A capacidade de ter vários membros da equipe contribuindo para um projeto e conduzi-lo até a conclusão no tempo é inestimável para o sucesso de um produto, especialmente quando ele recebe atualizações e aprimoramentos regulares de recursos com base no feedback do cliente. As equipes alcançam facilmente essa contribuição simultânea por meio de sistemas de controle de versão distribuída (DVCS), como Git.
O fato de o Git operar em um ambiente distribuído repositório modelo significa que o código-fonte e todo o seu histórico de versões estão disponíveis para todos os desenvolvedores, permitindo-lhes reverter e “voltar no tempo”. Os membros da equipe que trabalham no mesmo projeto podem trabalhar em filiais diferentes, que posteriormente serão mescladas.
Mas o que acontece quando dois desenvolvedores trabalhando no mesmo arquivo fazem alterações, confirmam e enviam essas alterações? Ou se esses desenvolvedores trabalharem em diferentes branches do mesmo repositório e um decidir mesclar os branches? A resposta é simples: ambos os cenários causarão um conflito de mesclagem.
Neste blog, aprenderemos como resolver problemas de mesclagem conflitos no Git de dentro Asteraplataforma de dados. Mas antes disso, vamos ver rapidamente o que são conflitos e por que eles ocorrem.
O que são conflitos de mesclagem no Git?
Em circunstâncias normais, ou seja, quando os commits estão em duas linhas de código ou ramificações diferentes, o Git resolve as diferenças automaticamente. No entanto, quando as diferenças estão nas mesmas linhas de código, o Git requer intervenção humana para resolver essas diferenças. Essa instância, em que não consegue resolver as diferenças por conta própria, é chamada de conflito de mesclagem ou, simplesmente, de conflito.
A imagem a seguir ilustra como um conflito pode ocorrer:
Mesclar conflito
Digamos que haja dois desenvolvedores, A e B, trabalhando na mesma ramificação. Ambos os desenvolvedores extraem o mesmo arquivo do repositório remoto e fazer alterações nele. O desenvolvedor B conclui sua tarefa mais cedo e envia o arquivo de volta ao servidor. Até agora tudo bem.
Da mesma forma, o desenvolvedor A conclui seu trabalho e continua a empurrá-lo. No entanto, ela enfrenta um conflito ao tentar enviar o arquivo. Este conflito ocorre porque o mesmo arquivo já foi substituído no repositório remoto por uma versão atualizada do desenvolvedor B.
O mesmo teria acontecido se ambos os desenvolvedores, trabalhando em ramos diferentes, tivessem feito alterações no mesmo arquivo e um deles tentasse mesclar seu ramo com o ramo do outro desenvolvedor. Ainda outro conflito ocorrerá quando um dos desenvolvedores edita um arquivo e o outro o exclui.
O desenvolvedor que executa a operação de mesclagem é afetado pelo conflito de mesclagem; outros membros da equipe permanecerão inconscientes, a menos que sejam explicitamente informados disso. Portanto, é responsabilidade do desenvolvedor resolver o conflito e concluir o processo de mesclagem.
Como resolver conflitos de mesclagem no Git?
O método mais comum para resolver um conflito de mesclagem é abrir o arquivo e fazer manualmente as alterações necessárias. Por exemplo, digamos que haja um arquivo de texto chamado “conflict.txt” que foi alterado recentemente e precisa ser enviado para o repositório remoto. No entanto, o arquivo não passa porque um conflito faz com que o processo de mesclagem pare.
Nesse caso, você terá que usar as ferramentas de linha de comando do Git para resolver o conflito. Você provavelmente passará pelas seguintes etapas ao fazer isso:
- Abra o arquivo em seu editor de texto preferido
- Identifique as mudanças que estão causando o conflito e faça as mudanças necessárias
- Use “git add conflict.txt” para preparar o arquivo
- Use “git commit -m 'sua mensagem de confirmação aqui'” para cometer
Outros comandos do Git que ajudam a resolver conflitos de mesclagem incluem:
- redefinir
- git diferença
- git push
- git merge -abort
- git reset – misturado
- git check-out
- status git
- git rebase – continue
Resolvendo conflitos de mesclagem no Git de dentro Asterainterface do usuário
AsteraIntegração do Git oferece uma solução de controle de versão nativa que permite que você lide com todos os seus gestão de dados projetos com facilidade. Com AsteraNa implementação do Git do Git, um conflito pode ocorrer quando duas ramificações têm um arquivo com o mesmo nome e uma das ramificações é mesclada na outra.
Da mesma forma, você enfrentará um conflito quando houver diferenças nos arquivos com os mesmos nomes em seu repositório local e no servidor remoto.
Vamos dar um exemplo para entender como você pode enfrentar um conflito e o que você precisa fazer para resolvê-lo usando o Git através do Astera Plataforma de Dados. Digamos que temos duas ramificações locais: Branch01 e Branch02.
Navegador Git Branches em Astera
Cada branch tem pipelines de dados diferentes, mas os arquivos nos quais eles são salvos contêm o mesmo nome, “GitDataflow01”. Veja as imagens abaixo:
Git Branches – Fluxo de dados em Branch01 salvo no arquivo “GitDataflow01”
Git Branches – Fluxo de dados em Branch02 salvo no arquivo “GitDataflow01”
Se tentarmos mesclar Branch01 com o branch atual (Branch02 neste caso), obteremos um erro devido ao conflito, e o arquivo em conflito aparecerá em um novo nó chamado Conflicted na janela Git Changes. Então agora temos um conflito e, antes de prosseguir, teremos que resolvê-lo.
Vamos ver como podemos fazer isso de dentro Asterainterface do usuário. Tenha em mente, porém, que neste momento, temos três opções:
- Abortar processo de mesclagem
- Visualize os arquivos em cada ramificação ou
- Prossiga com a resolução sem visualizar (caso tenha certeza de qual versão deseja manter)
Para resolver este conflito, clique com o botão direito do mouse no arquivo, GitDataflow01 neste caso, e expanda o Resolver opção para escolher Mantenha-se atualizado (local) or Take Incoming (Remoto). Como os nomes sugerem, selecionar a primeira opção manterá apenas a versão do arquivo da ramificação atual (Branch02), enquanto escolher a última opção manterá apenas a versão da ramificação que está sendo mesclada (Branch01).
Resolvendo conflitos de mesclagem no Git dentro Asterainterface do usuário
Em seguida, vamos confirmar e fornecer um resumo para concluir o processo de mesclagem.
AsteraA integração Git do permite que você execute a maioria das operações Git, como push, pull, merge, fetch, commit, etc., sem escrever códigos. Você também tem a opção de usar a interface de linha de comando se estiver familiarizado com ela. Ele não apenas mantém o gerenciamento de controle de versão simples, mas também acelera todo o processo.
Com o AsteraCom a integração do Git, você obtém o melhor dos dois mundos para simplificar seus projetos de gerenciamento de dados: Asteraestá unificado, plataforma de gerenciamento de dados sem código e os recursos de controle de versão super rápidos do Git. Agora que você sabe como resolver conflitos de mesclagem no Git, dê o próximo passo e experimente você mesmo! Inscreva-se para um 14-day free trial or agendar uma demonstração hoje!