![Laptop Linux mostrando uma janela de terminal com um padrão de globo ao fundo e uma marca d'água binária](https://www.howtogeek.com/wp-content/uploads/2023/02/fatmawati-achmad-zaenuri-321627716.png?width=1198&trim=1,1&bg-color=000&pad=1,1)
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
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
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
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
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
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
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
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
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
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
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
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
vamos contar git
para mesclar nosso branch atual com o branch no repositório remoto, existem seis commits diferentes que precisam ser resolvidos.
Precisamos dizer ao Git qual branch remoto queremos mesclar.
git merge origin/mary-feature
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.
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.
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
0 Comments