user2283043
user2283043

Reputation: 83

git "Your branch and 'origin/master' have diverged" after fresh clone of remote repo

When I clone a remote repository with

  1. git clone 'repo_url'
  2. git pull
  3. git status

I get this message -

On branch master
Your branch and 'origin/master' have diverged,
and have 41 and 20 different commits each, respectively

When I use git pull -a I do not have this issue.

Are things out of sync on the remote repo? with the HEAD and the master ? How do I fix it?

EDIT 1 :

when I run git branch -a : this is what it looks like...

$ git branch -a

* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/clothes
  remotes/origin/dunnesBranch
  remotes/origin/master

EDIT 2 :

It seems to me that origin/master is not pointing to the latest code... I ran 'git clone ' then git reset --hard origin/master and then a 'git pull' and it attempted a merge which failed due to conflicts...

I think... The HEAD of the remote repo is pointing to the latest commit, origin/master is pointing to a different, older commit... I can verify this when I run git show...

Upvotes: 5

Views: 8192

Answers (2)

VonC
VonC

Reputation: 1323343

Not sure about the cause, unless:

  • there is a git push --force on origin by someone else, done between you cloning the repo, and you pulling that same repo
  • the fetch refspec (git config --get remote.origin.fetch) isn't +refs/heads/*:refs/remotes/origin/*.

But you can reset master easily enough:

git reset --hard origin/master

Make sure master is tracking origin/master:

git branch -u origin/master master

And make sure your push policy is 'simple' (in order to push the current branch out to the same name at the remote repository, only when it is set to track the branch with the same name over there):

 git config --global push.default simple

Summary of the comments: the root cause seems to be related to the 1.7.x version of git used for those operation. It seems to work fine with a latest git1.8.3.

Upvotes: 7

Stefano Falasca
Stefano Falasca

Reputation: 9097

This usually happens when the origin history has been altered by means of "amend", "reset" or similar git commands, see here for some details

Upvotes: 1

Related Questions