git não parece puxar todas as atualizações - HEAD e origem / HEAD em diferentes posições

Eu acabei com um repositório git em um estado que eu não sei como lidar, e eu preciso de alguma ajuda para entender a) o que está acontecendo, como e por que o repositório está nesse estado eb) como eu deveria reagir para isso. Basicamente, ao puxar do controle remoto, termino à frente do controle remoto, mesmo se eu redefinir todas as alterações e tentar novamente.

Isso é o que eu fiz:

Eu bifurquei um repositório git, clonei a versão upstream (que eu não tenho acesso de gravação) e, em seguida, adicionei meu próprio fork à lista de controles remotos, para quegit remote -v mostra o seguinte:

$ git remote -v
mine    [email protected]:tlycken/julia.git (fetch)
mine    [email protected]:tlycken/julia.git (push)
origin  git://github.com/JuliaLang/julia.git (fetch)
origin  git://github.com/JuliaLang/julia.git (push)

Agora quero ter certeza de que minha versão local está atualizada com tudo no repositório upstream, então eu corro

$ git pull origin master
From git://github.com/JuliaLang/julia
 * branch            master     -> FETCH_HEAD
Already up-to-date.
tlycken$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 4 commits.
#   (use "git push" to publish your local commits)
#
nothing to commit, working directory clean

Isso me confunde. Por que minha filial está à frente do mestre de origem? Eu não mudei nada.

Para ver se eu poderia fazer algo sobre isso, eu corrigit lg (um apelido paragit log --graph com algum prettyprint). O topo da saída é assim:

*   6912a42 - (HEAD, mine/master, master) Merge pull request #3052 from daviddelaat/linalgnumber (2013-05-10 11:23:09 -0700) <Viral B. Shah>
|\  
| * 8116d51 - Use Number instead of Integer in some linalg operations (2013-05-10 19:12:45 +0200) <David de Laat>
* | 6cc1532 - Update .travis.yml configuration in the manual. (2013-05-10 21:41:59 +0530) <Viral B. Shah>
* | fa1e3fe - Update logdet. Close #3070. (2013-05-10 19:35:37 +0530) <Viral B. Shah>
* |   a182f7f - (origin/master, origin/HEAD, mine/contrib-base) Merge branch 'master' of github.com:JuliaLang/julia (2013-05-10 03:10:38 -0400) <Jeff Bezanson>

Aparentemente, os HEAD's estão em posições diferentes. Para ter certeza de que recebo o código correto no meu repositório local antes de começar a ramificar, eu fizgit reset --hard origin/HEAD para remover qualquer coisa que eu estava à frente, e depoisgit pull origin master para ter certeza de que eu estava atualizado (ou seja, não reajustei demais ou algo assim):

$ git pull origin master
From git://github.com/JuliaLang/julia
 * branch            master     -> FETCH_HEAD
Updating a182f7f..6912a42
Fast-forward
 base/linalg/dense.jl         |  2 +-
 base/linalg/factorization.jl | 44 ++++++++++++++++++++++----------------------
 doc/manual/packages.rst      |  3 +--
 3 files changed, 24 insertions(+), 25 deletions(-)
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 4 commits.
#   (use "git push" to publish your local commits)
#
nothing to commit, working directory clean

e estou de volta onde comecei.

O que está acontecendo aqui? O que devo fazer para chegar a um estado em que meu mestre local tem as últimas atualizações do upstream?

questionAnswers(1)

yourAnswerToTheQuestion