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

bookSincronizando 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:

Note
Nota

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:

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 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:

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

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

  3. Ao tentar enviar nossas alterações locais, encontramos um conflito porque o repositório remoto tinha novas atualizações;

  4. Para resolver, buscamos as alterações do repositório remoto, o que resultou em um conflito de mesclagem;

  5. 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.

question mark

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

Select the correct answer

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

Suggested prompts:

Pergunte-me perguntas sobre este assunto

Resumir este capítulo

Mostrar exemplos do mundo real

Awesome!

Completion rate improved to 5

bookSincronizando 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, 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:

Note
Nota

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:

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 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:

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

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

  3. Ao tentar enviar nossas alterações locais, encontramos um conflito porque o repositório remoto tinha novas atualizações;

  4. Para resolver, buscamos as alterações do repositório remoto, o que resultou em um conflito de mesclagem;

  5. 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.

question mark

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

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

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