-
Para responder a essa pergunta, vamos pensar
nos commits que estavam presentes no
-
GitHub e em seu repositório local
antes e depois do git fetch.
-
Quando você clonou o repositório,
-
o último commit contido nele era o
commit de Larry que adicionava a receita de chili.
-
Então, esse também ficou sendo o último
commit em seu repositório local.
-
Claro, havia outros
commits, mas
-
vou deixá-los de fora aqui
por causa do espaço.
-
Agora você criou um commit
para adicionar new spice,
-
então esse commit também está presente
em seu repositório local.
-
E é nele que se encontra seu branch master.
-
origin/master ainda aponta para
o commit que estava no remoto
-
no momento da clonagem.
-
Depois que você o clonou, Sarah acrescentou
o commit cumin no GitHub,
-
mas seu branch origin/master
ainda não refletirá isso.
-
Portanto, este é o
estado do master no GitHub.
-
E este era o estado dos
-
dois repositórios imediatamente
antes de você executar git fetch.
-
Se você executou git log origin/master,
deve ter visto que o commit de Larry
-
que adicionava a receita de chili estava presente,
mas seu commit que adicionava um novo tempero e
-
o commit de Sarah que excluía cumin
não estavam presentes no branch origin/master.
-
Se você executou git status, deve ter visto
que seu branch estava um commit
-
à frente de origin/master.
-
Isso faz sentido, pois git log e git status
são executados sem acesso à Internet.
-
Suponha que você estivesse em algum lugar
sem acesso à Internet quando
-
executou esses comandos.
-
O repositório git local não teria
qualquer ideia da existência do commit cumin.
-
Claro, o commit cumin
não seria mostrado ao executar
-
git log origin/master.
-
E o git status não saberia que seus
branches estavam, na verdade, fora de sincronia.
-
Ele acha que seu
branch está mais à frente.
-
Agora, quando você executa git fetch,
o git busca o commit cumin e
-
atualiza o branch origin/master
para que ele aponte para o novo commit.
-
Seu master local ainda aponta para
o commit new spice, como antes.
-
Então, neste momento, você tem
uma cópia local do commit cumin salva
-
e pode acessá-la via git log.
-
Se você executar git log agora,
verá o commit cumin
-
e o commit chili.
-
Mas ainda não verá seu
novo commit spice, pois ele está
-
apenas em seu branch master local.
-
Como o origin/master e o
-
master têm um commit que
não está presente no outro,
-
git status mostrará que seu branch
está fora de sincroniza com origin/master.