Git Fetch: uma classe mestre


0
Laptop Linux mostrando uma janela de terminal com um padrão de globo ao fundo e uma marca d'água binária
fatmawati achmad zaenuri/Shutterstock.com
O comando git fetch é como um comando git pull que atualiza seu repositório local com informações e confirma do repositório remoto, sem sobrescrever seus arquivos de trabalho.

o git fetch O comando permite que você olhe antes de pular. Você pode descobrir quais alterações foram feitas em um repositório remoto, mas sem substituir seus arquivos locais pelos arquivos remotos.

O que é git fetch e o que ele faz?

O fetch O comando no Git baixa commits, arquivos e outras informações de um repositório remoto para seu repositório local, com segurança. Use a busca quando quiser ver quais alterações outros desenvolvedores fizeram, sem ser forçado a aceitar as alterações. Seus arquivos locais permanecem intocados. Por que isso é importante?

Você tem que manter seu juízo sobre você quando está trabalhando como parte de uma equipe de desenvolvimento. O repositório remoto ou central conterá alterações e novas ramificações que outros desenvolvedores criaram e enviaram para o repositório remoto.

É totalmente possível que alguém tenha atualizado a cópia remota dos arquivos que você modificou localmente em seu computador. Se você casualmente realizar uma git pull para atualizar seu repositório local, você provavelmente terá que lidar com mesclagens para alterações que talvez nem queira.

Depois de baixar as informações, você pode examiná-las e ver quais são as mudanças. Isso permite que você faça uma escolha informada sobre o que deseja mesclar agora, se houver, e o que deseja adiar para mais tarde.

Git buscar vs. puxar

O git fetch comando se comporta como o git pull comando mas sem a etapa que substitui seus arquivos locais. Seu repositório local é atualizado e sincronizado, mas as alterações não são gravadas no estado de trabalho de seu repositório local, portanto, seus arquivos permanecem intocados.

Ou, dito de outra forma, o git pull comando é como um git fetch seguido imediatamente por um git merge .

Sincronize seus repositórios locais e remotos com git fetch

Para buscar todos os metadados atualizados e confirmações de um repositório remoto para seu repositório local, use o git fetch comando com o nome ou URL do repositório remoto. Por padrão, o primeiro repositório remoto é chamado de “origem”.

git fetch origin

Você pode omitir a palavra “origem” se estiver trabalhando com um único repositório remoto.

git fetch

Usando o comando git fetch no repositório remoto padrão

Isso recupera todas as atualizações do repositório de “origem”, mas não mescla as alterações nos arquivos de trabalho. Podemos ver que há um novo branch, chamado “new-branch”, que foi recuperado para nós.

Uma vez que você usou o fetch comando, você pode ver a lista completa de filiais no controle remoto, usando -r (remoto) com o comando branch.

git branch -r

Olhando para as ramificações que existem no controle remoto padrão

Isso lista todas as ramificações que o controle remoto conhece, que após o fetch também estão em seu repositório local.

Veja todas as tags buscadas

Da mesma forma, você pode usar o tag opção (observe, é “tag” sem um “s”) para ver a lista de tags.

git tag

Usando o comando git tag para listar as tags no repositório local

RELACIONADO: Como alternar, adicionar e remover Git Remotes

Fazendo uma simulação primeiro

Embora um git fetch não mescla as alterações em seus arquivos de trabalho, ele ainda atualiza seu repositório local. Se você quiser ver o que mudar o fetch comando irá executar, sem realmente fazê-los, use o --dry-run opção.

git fetch --dry-run

Usando a opção --dry-run para ver as alterações que o comando fetch recuperaria

Como obter um único ramo

Buscar informações sobre uma única ramificação é fácil. Adicione o nome da ramificação à linha de comando para informar fetch você só precisa saber sobre aquele ramo.

Aqui, estamos contando fetch para recuperar a ramificação “mary-feature” do repositório remoto “origin”.

git fetch origin mary-feature

Usando git fetch para recuperar uma única ramificação remota

Agora que os detalhes e o conteúdo da ramificação remota estão em seu repositório local, você pode usar o git checkout comando para criar uma nova ramificação e verificar a ramificação remota. Isso não sobrescreverá nenhum arquivo existente se for a primeira vez que você usa essa ramificação.

git checkout -b mary-feature origin/mary-feature

Verificando com segurança uma ramificação remota recuperada para uma nova ramificação local

Obter todas as filiais

Se estiver usando vários controles remotos, você pode economizar tempo puxando todas as alterações de todas as ramificações de volta para seu repositório local usando o comando --all opção.

git fetch --all

Comparando Ramos Locais e Remotos

Para ver como os arquivos em uma ramificação remota diferem de suas cópias locais, use git fetch então use o git log comando.

Observe que os ramos local e remoto possuem dois pontos “..” separando-os. O --oneline A opção mostra o identificador do commit e a mensagem do commit.

git fetch
git log --oneline mary-feature..origin/mary-feature

Usando git para buscar as alterações remotas e git log para mostrar as alterações

A exibição de uma linha é útil se uma ramificação contém muitas alterações. Para ver um pouco mais de informação, omita o --oneline opção.

git log mary-feature..origin/mary-feature

Omitir a opção --oneline para que o git mostre mais detalhes para cada confirmação

Isso nos mostra a hora e a data de cada commit, junto com a mensagem do commit e os detalhes de contato do autor da alteração.

Sincronizando uma filial local com uma filial remota

Se você decidiu que quer ir em frente e mesclar as alterações da ramificação remota para seus arquivos de trabalho locais, você pode usar estes comandos.

Faremos o check-out do branch para ter certeza de que estamos funcionando, é o nosso branch atual e em funcionamento.

git checkout mary-feature

Verificando uma filial

A ramificação é verificada para nós e somos informados de que ela está por trás da versão remota. Podemos usar git pull para atualizá-lo, então git status para verificar nosso estado.

git pull
git status

Puxando alterações do repositório rmeote para o local

Se fizemos algumas alterações em nossos arquivos locais, o Git nos informa ao fazer o checkout da ramificação que precisaremos executar um git pull para iniciar uma mesclagem.

git checkout mary-feature

Git nos informando que os brnahces locais e remotos divergiram e precisam ser mesclados

Um simples git pull inicia o processo de recuperação dos arquivos e fusão, ou podemos mergulhar direto e usar git merge em si. Começaremos certificando-nos de que estamos trabalhando com o ramo correto

git checkout mary-feature

Git nos informando que os brnahces locais e remotos divergiram e precisam ser mesclados

vamos contar git para mesclar nosso branch atual com o branch no repositório remoto, existem seis commits diferentes que precisam ser resolvidos.

Uma mensagem de mesclagem bem-sucedida

Precisamos dizer ao Git qual branch remoto queremos mesclar.

git merge origin/mary-feature

usando git merge para mesclar as alterações remotas em uma ramificação local

Um editor é aberto para nos permitir fornecer uma mensagem de confirmação. Podemos aceitar a mensagem sugerida ou adicionar a nossa. O editor é seu editor padrão, a menos que o Git tenha sido configurado para usar um editor diferente.

Editando a mensagem de confirmação

Salve suas alterações quando estiver pronto para continuar. A mesclagem continua automaticamente quando o editor é fechado.

Nossa fusão foi bem-sucedida porque não houve conflitos.

Uma mensagem de mesclagem bem-sucedida

Os conflitos surgem quando as mesmas linhas de código são alteradas por dois ou mais desenvolvedores. Se for esse o caso, o Git marca os conflitos no arquivo afetado. Você precisará revisá-los e escolher qual alteração manter.

O cachorrinho meio treinado

Assim como um cachorrinho em treinamento, fetch recuperará o que você pedir, mas não o abandonará. Se você realmente quer o que o cachorro lhe mostrou, você precisará pull.

RELACIONADO: Git rebase: tudo o que você precisa saber


Like it? Share with your friends!

0

0 Comments

Your email address will not be published. Required fields are marked *