Firstly, I'm aware of a number of similarly worded questions, eg:
- How can I find the location of origin/master in git, and how do I change it?
- git: Your branch is Ahead by X commits
- Git: Branch is ahead by X commits. Doesn't help doing git pull
- pull-only repo's 'git status' saying the branch is ahead of origin/master. Why?
None of them (AFAICT) has an answer that matches my version of this question.
My situation is:
$ git status
# On branch stable
nothing to commit (working directory clean)
$ git checkout master
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 857 commits.
In the existing questions the accepted and upvoted answers mostly concur that it means literally what it says... I'm ahead and I need to push my new commits to origin/master.
I know that actually the opposite situation is true, that my local master
branch is behind the remote origin/master
and actually I need to git pull origin master
before doing some work on it locally. (or possibly just git fetch origin
?)
My question is... is there some reason for the message to be worded Your branch is ahead of 'origin/master' by 857 commits.
such that it literally makes sense?
Because the way I understand it at the moment the meaning is the opposite of what the message says ('my branch' is behind origin/master).
Or does it really mean: "The HEAD of the remote master branch is ahead of your local origin/master tracking branch" ?
update FWIW I am working in a team of half a dozen other developers. We all pull, commit and push etc many times a day without problem. I don't have a bug here... I'm just trying to understand why Git words its message this way - whether the wording itself is badly chosen, or if there's some underlying concept of Git that causes them to word it this way and which I'm not understanding properly.
more info
here is what I guess may be the relevant part of output from git config -l
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
remote.origin.url=https://code.google.com/a/google.com/p/xxxxx/
branch.master.remote=origin
branch.master.merge=refs/heads/master
branch.master.mergeoptions=--no-ff