Conteúdo do Curso
Fundamentos do GitHub
Fundamentos do GitHub
Sincronizando os Repositórios
Como mencionado no capítulo anterior, é necessário sincronizar o branch local com o repositório remoto. Para isso, deve-se executar o comando git pull
:
Ao executar o comando git pull
, o Git buscou atualizações, mas percebeu que os branches local e remoto divergiram, ou seja, existem alterações em ambos os branches que precisam ser conciliadas. O Git não pôde prosseguir porque precisa saber como lidar com essas diferenças, portanto, defina a opção merge e execute novamente o comando git pull
:
A operação rebase será abordada posteriormente neste curso.
O Git tentou mesclar automaticamente as alterações locais e remotas no README.md
, mas encontrou um conflito de mesclagem. Vamos analisar a árvore de commits, que indica onde ocorreram divergências e conflitos:
Resolução do Conflito
Como pode ser observado, nosso commit local atual e o commit no branch remoto main
compartilham um ancestral comum, mas divergem, resultando no conflito de mesclagem que precisamos resolver. Para isso, abriremos o arquivo README.md
no editor Vim:
Para resolver esse conflito, é possível entrar no modo de inserção pressionando i
, remover os marcadores de conflito e combinar essas alterações da seguinte forma:
Em seguida, pressione a tecla Escape, digite :wq
e pressione a tecla Enter para salvar as alterações e sair do Vim. Agora, para finalizar o merge, o arquivo README.md
deve ser adicionado à área de stage e então comitado utilizando os respectivos comandos:
Após executar o comando git commit
, o editor de texto padrão será aberto (provavelmente, o Vim). Você pode manter a mensagem de commit padrão e sair do Vim da mesma forma que acabamos de fazer, ou pode editar a mensagem e então sair.
Por fim, é possível executar o comando git push
com segurança e verificar se o merge de três vias foi bem-sucedido exibindo a árvore de commits:
Vamos analisar o que foi feito nestes dois capítulos:
Simulamos colaboração realizando alterações tanto localmente quanto remotamente no arquivo
README.md
;Primeiro, registramos uma alteração diretamente no repositório remoto e, em seguida, fizemos uma alteração diferente localmente;
Ao tentar enviar nossas alterações locais, encontramos um conflito porque o repositório remoto tinha novas atualizações;
Para resolver, buscamos as alterações do repositório remoto, o que resultou em um conflito de mesclagem;
Em seguida, resolvemos manualmente o conflito no arquivo
README.md
usando o editor Vim, registramos as alterações resolvidas e enviamos com sucesso as atualizações finais para o repositório remoto.
Obrigado pelo seu feedback!