Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Sincronizando os Repositórios | Fluxos de Trabalho Mais Avançados
Fundamentos do GitHub

Sincronizando os Repositórios

Deslize para mostrar o menu

Como mencionado no capítulo anterior, é necessário sincronizar o branch local com o repositório remoto. Para isso, execute o comando git pull:

git pull
Tentativa de pull

Ao executar o comando git pull, o Git buscou atualizações, mas percebeu que os branches local e remoto divergiram, ou seja, há alterações em ambos 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:

git config pull.rebase false
Note
Nota

A operação rebase será abordada mais adiante neste curso.

git pull
Conflito de mesclagem

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 as divergências e conflitos:

git log --graph --oneline --all
Árvore de commits

Resolvendo o Conflito

Como pode ser visto, nosso commit local atual e o commit no branch remoto main compartilham um ancestral comum, mas divergem, levando ao conflito de mesclagem que precisamos resolver. Para isso, vamos abrir o arquivo README.md no editor Vim:

vim README.md
Conflitos no 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:

Conflito resolvido

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 usando os respectivos comandos:

git add README.md
git commit
Note
Nota

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 depois sair.

Comitando arquivo mesclado

Por fim, é possível executar com segurança o comando git push e verificar se o merge de três vias foi bem-sucedido exibindo a árvore de commits:

git log --graph --oneline --all
Árvore de commits

Resumo das ações realizadas nestes dois capítulos:

  1. Simulação de colaboração realizando alterações tanto localmente quanto remotamente no arquivo README.md;

  2. Primeiro, commit de uma alteração diretamente no repositório remoto e, em seguida, realização de uma alteração diferente localmente;

  3. Ao tentar enviar as alterações locais, ocorrência de um conflito devido a novas atualizações no repositório remoto;

  4. Para resolver, realização do pull das alterações do repositório remoto, resultando em um conflito de merge;

  5. Resolução manual do conflito no arquivo README.md utilizando o editor Vim, commit das alterações resolvidas e envio bem-sucedido das atualizações finais para o repositório remoto.

question mark

Qual comando configura o Git para usar merge (e não rebase) durante o git pull?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 2

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 3. Capítulo 2
some-alt