When I clone a remote repository with
git clone 'repo_url'
git pull
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...
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