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.
Lado a lado
| Behavior | git fetch | git pull |
|---|---|---|
| Baixa commits remotos | Sim | Sim |
| Altera sua branch atual | Não | Sim |
| Pode causar conflitos de merge | Não | Sim |
| Equivale a | apenas download | fetch + merge |
Sintaxe
| Command | What it does |
|---|---|
git fetch | Baixa todas as mudanças remotas, sem fazer merge |
git fetch origin main | Busca apenas uma branch de um remoto |
git pull | Baixa e faz o merge na branch atual |
git pull --rebase | Baixa e depois faz o rebase dos seus commits por cima |
git log HEAD..origin/main | Apó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.