Git Fetch: uma aula magistral

Laptop Linux mostrando uma janela de terminal com um padrão de globo no fundo e uma marca d’água binária

O comando Git fetchpermite 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 fetchcomando no Git baixa commits, arquivos e outras informações de um repositório remoto para o seu repositório local, com segurança. Use fetch quando quiser ver quais alterações outros desenvolvedores fizeram, sem ser forçado a aceitá-las. Seus arquivos locais permanecem intactos. Por que isso é importante?

Você deve manter o bom senso quando estiver 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.

É perfeitamente possível que alguém tenha atualizado a cópia remota dos arquivos que você modificou localmente no seu computador. Se você executar casualmente um git pullpara atualizar seu repositório local, provavelmente se verá lidando 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 alterações. 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 versus puxar

git fetch comando se comporta como o git pullcomando, 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 funcionamento do seu repositório local, portanto seus arquivos permanecem intactos.

Recomendado:  4 hubs Smarthome que você nunca ouviu falar (e por que não deveria usá-los)

Ou, dito de outra forma, o git pullcomando é como um git fetchseguido imediatamente por um git merge.

Sincronize seus repositórios locais e remotos com git fetch

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

git buscar origem

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

buscar

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

Isso recupera todas as atualizações do repositório “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.

Depois de usar o fetchcomando, você poderá ver a lista completa de ramificações no controle remoto, usando a -ropção (remota) com o comando ramificação.

git ramo -r

Observando 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 no seu repositório local.

Ver todas as tags buscadas

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

etiqueta git

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

Fazendo uma simulação primeiro

Embora a git fetchnão mescle as alterações em seus arquivos de trabalho, ele ainda atualiza seu repositório local. Se você quiser ver quais alterações o fetchcomando realizará, sem realmente realizá-las, use a --dry-runopção.

git fetch --dry-run

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

Como buscar uma única filial

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

Recomendado:  Como ajustar o texto ao redor de imagens e outras ilustrações no Microsoft Word

Aqui, estamos dizendo fetchpara recuperar o branch “mary-feature” do repositório remoto “origin”.

git buscar origem recurso mary

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 checkoutcomando para criar uma nova ramificação e fazer check-out da ramificação remota . Isso não substituirá nenhum arquivo existente se for a primeira vez que você usa este branch.

git checkout -b recurso mary origem/recurso mary

Verificando com segurança uma filial remota recuperada para uma nova filial local

Buscar 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 o seu repositório local usando a --allopção.

git buscar --tudo

Comparando filiais locais e remotas

Para ver como os arquivos em uma ramificação remota diferem das cópias locais, use e git fetch, em seguida, use o git logcomando.

Observe que as ramificações locais e remotas possuem dois pontos ” ..” que as separam. A --oneline opção mostra o identificador do commit e a mensagem do commit.

buscar

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 a --onelineopção.

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

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

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

Sincronizando uma filial local com uma filial remota

Se você decidiu prosseguir e mesclar as alterações da ramificação remota com seus arquivos de trabalho locais, você pode usar estes comandos.

Faremos o checkout do branch para ter certeza de que estamos funcionando, é nosso branch atual e funcional.

git checkout recurso mary

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

A filial foi verificada para nós e fomos informados de que ela está por trás da versão remota. Podemos usá- git pulllo para atualizá-lo e depois git statusverificar nosso status.

Recomendado:  Por que um micro-ondas inteligente faz mais sentido do que outros eletrodomésticos de cozinha

puxa

status do git

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

Se tivermos feito algumas alterações em nossos arquivos locais, o Git nos informará quando fizermos checkout do branch que precisaremos realizar um git pullpara iniciar uma mesclagem.

git checkout recurso mary

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

Um simples git pullinicia o processo de recuperação dos arquivos e mesclagem, ou podemos mergulhar de cabeça e usá- git mergelo. Começaremos certificando-nos de que estamos trabalhando com o branch correto

git checkout recurso mary

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

Diremos gitpara mesclar nosso branch atual com o branch no repositório remoto, existem seis commits diferentes que precisam ser resolvidos.

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

Precisamos informar ao Git qual branch remoto queremos mesclar.

git merge origem/recurso mary

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

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

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

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

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

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

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 quais alterações manter.

O cachorrinho meio treinado

Assim como um cachorrinho em treinamento, fetchirá recuperar o que você pede, mas não deixará cair. Se você realmente quer o que o cachorrinho lhe mostrou, você precisará pull.