Qual a diferença entre git fetch e git pull?

Se você tem dúvidas ou usa apenas git pull para atualizar os arquivos locais, este post vai te auxiliar na descoberta e uso do git fetch

Wolmir Cezer Garbin por Wolmir Cezer Garbin - - DevOps - DICA

Última atualização em: | 10251 Visualizações

Por muito tempo utilizava apenas git pull, mas após algum tempo e me deparar com git fetch comecei a pesquisar e entender melhor a diferença entre os comandos. Hoje quero esclarecer essas diferenças pra vocês e ajudar a entender.

Entendendo o git pull

Para quem está começando com git, deve saber que se utilizar o git pull em um projeto local, os arquivos serão atualizados com base no repositório remoto certo!

Sabendo disso vamos detalhar o que o git pull faz ao ser executado.

Ao executar git pull, o git executa dois comandos: fetch e merge, ou seja, é uma forma mais semantica para atualizar e fazer o merge do seu branch local com o branch remoto.

Então podemos dizer que o git pull corresponde aos seguintes comandos encadeados:

git fetch
git merge origin/[...]

Note que o merge apenas faz a junção do branch remoto com o branch local.



Entender o git fetch

Sabendo que o git pull é apenas um atalho, o que faz então o git fetch?

Para entender, vamos falar sobre os repositórios. Sabemos que existe um repositório local com alterações no código ou novas implementações e um repositório remoto. Então ao executar um git fetch, dizemos que queremos atualizar o branch remoto mas não aplicar sobre o branch local.

Para ficar mais claro imagine que você tenha em sua maquina:

master
origin/master

Ao executar o fetch atualizamos apenas o branch origin/master que é um espelho do repositório remoto. Assim se quisermos ver a diferença entre os banchs pode usar o comando:

git diff origin/master

Se quiser fazer o merge entre os branchs, use:

git merge origin/master

Note que considero que esteja no branch master, caso não estiver execute: git checkout master.

Então após fazer o merge entre os branchs temos nosso repositório local atualizado. Em resumo é o que o comando git pull faz.

Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.


Publique seu post no Receitas de Código

Aguarde, estamos trabalhando para que você possa publicar sua postagem no Receitas de Código!