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
Última atualização em: | 11203 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.