When I clone a remote repository with
git clone 'repo_url'git pullgit statusI 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...
Not sure about the cause, unless:
git push --force on origin by someone else, done between you cloning the repo, and you pulling that same repogit 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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With