Git Fetch vs Pull: Qual é a diferença entre os comandos Git Fetch e Git Pull?

Git pulle fetchsão dois comandos usados ​​regularmente por usuários Git. Vamos ver a diferença entre os dois comandos.

Para fins de contexto, vale lembrar que provavelmente estamos trabalhando em um repositório clone. O que é um clone? É simplesmente uma duplicata de outro repositório. É basicamente obter sua própria cópia do código-fonte de outra pessoa.

Dito isso, para manter seu clone atualizado com quaisquer alterações que possam ter sido aplicadas ao original, você precisará trazê-las para seu clone.

É onde fetche pullentrar.

git fetch é o comando que diz ao seu git local para recuperar as últimas informações de meta-dados do original (mas não faz nenhuma transferência de arquivo. É mais como apenas verificar se há alguma alteração disponível).

git pull por outro lado faz isso E traz (copia) essas mudanças do repositório remoto.

Por exemplo:

git pull origin ankur bugfix

A lição é ter em mente que geralmente há pelo menos três cópias de um projeto em sua estação de trabalho.

  • Uma cópia é seu próprio repositório com seu próprio histórico de commits (o já salvo, por assim dizer).
  • A segunda cópia é sua cópia de trabalho onde você está editando e construindo (ainda não comprometida com seu repo).
  • A terceira cópia é sua cópia local “em cache” de um repositório remoto (provavelmente o original de onde você clonou o seu).

Você pode usar git fetchpara saber as mudanças feitas no repositório / branch remoto desde seu último pull. Isso é útil para permitir a verificação antes de fazer um pull real, o que poderia alterar arquivos em seu branch atual e cópia de trabalho (e potencialmente perder suas alterações, etc).

git fetch git diff ...origin