Menu
CoddyTech

Git Fetch vs Pull

Última atualização

git fetch baixa os commits mais recentes do remoto mas deixa sua branch de trabalho exatamente como estava. git pull faz o mesmo download e depois faz imediatamente o merge desses commits na sua branch atual. Em resumo: git pull = git fetch + git merge.

Use fetch quando quiser olhar antes de agir; use pull quando estiver pronto para integrar. Experimente os dois no terminal playground: um shell real no seu navegador.

git fetch baixa os commits novos e só atualiza origin/main - seu branch espera; git pull já os mescla imediatamente.

Lado a lado

Behaviorgit fetchgit pull
Baixa commits remotosSimSim
Altera sua branch atualNãoSim
Pode causar conflitos de mergeNãoSim
Equivale aapenas downloadfetch + merge

Sintaxe

CommandWhat it does
git fetchBaixa todas as mudanças remotas, sem fazer merge
git fetch origin mainBusca apenas uma branch de um remoto
git pullBaixa e faz o merge na branch atual
git pull --rebaseBaixa e depois faz o rebase dos seus commits por cima
git log HEAD..origin/mainApós o fetch: veja o que você faria merge

Perguntas frequentes sobre Git fetch vs pull

Qual é a diferença entre git fetch e git pull?
git fetch baixa novos commits e atualiza suas branches de rastreamento remoto (como origin/main) mas não altera sua branch de trabalho. git pull faz esse mesmo fetch e depois faz o merge dos novos commits na sua branch atual. Então o pull altera seus arquivos; o fetch apenas atualiza o seu conhecimento do remoto.
O git pull é apenas fetch mais merge?
Sim. git pull é uma abreviação de git fetch seguido de git merge da branch buscada na sua branch atual. Com git pull --rebase, o segundo passo é um rebase em vez de um merge, o que mantém o histórico linear.
Quando devo usar fetch em vez de pull?
Use git fetch quando quiser revisar as mudanças recebidas antes de integrá-las: por exemplo, git fetch e depois git log HEAD..origin/main para ver exatamente o que há de novo. Use git pull quando você já confia nas mudanças remotas e só quer que elas sejam mescladas na sua branch.
O git fetch chega a causar conflitos?
Não. O fetch apenas atualiza as branches de rastreamento remoto; ele nunca toca na sua branch de trabalho ou nos seus arquivos, então não pode produzir conflitos de merge. Os conflitos só surgem na etapa de merge, que o pull realiza automaticamente mas o fetch não.
Posso praticar isso online?
Sim. Abra o terminal playground para executar git fetch e git pull em um shell real no seu navegador, sem nada para instalar. O curso interativo e gratuito de Git da Coddy também aborda o trabalho com remotos passo a passo.
Ilustração das linguagens de programação do Coddy

Aprenda Git com a Coddy

COMEÇAR