"git push" silently fails, says 'Everything up-to-date" when it's not.

From: David Woodhouse <dwmw2@infradead.org>
Date: 2016-06-15 22:53:56

I *thought* I'd pushed everything from my tree out to the server a
couple of weeks ago, and 'git push' appears to confirm that:

[dwmw2@shinybook mtd-2.6]$ git push
Everything up-to-date

But it lies. Only when I try to *pull* does it give me a hint:

[dwmw2@shinybook mtd-2.6]$ git pull
You are not currently on a branch, so I cannot use any
'branch.<branchname>.merge' in your configuration file.
Please specify which branch you want to merge with on the command
line and try again (e.g. 'git pull <repository> <refspec>').
See git-pull(1) for details.

So I've been happily thinking that my commits were actually in
linux-next for the last couple of weeks when they weren't. OK, I could
have checked in gitweb — silly me for trusting the tools.

Why would it do this evil thing and start lying to me? When it told me
'Everything up-to-date', precisely *what* was it telling me was up to
date? Did it ever push *anything*, *anywhere*, or was it just a complete
fabrication?

I don't quite know how I ended up "not currently on a branch" either. I
almost never use branches locally and my local tree has *never* been
changed to another branch; I always use separate trees instead of
branches. I may have committed a few things, then reverted them with
'git reset HEAD^^^^' and re-committed them with some changes. But that
shouldn't cause this, surely?

When I have a clone a remote tree, and I run 'git push', surely my HEAD
should be pushed to the HEAD of the remote tree? There's little excuse
for *telling* me it's up-to-date, when it's not!

I understand that some people like the branch facility even though I
find it mostly pointless, but I'd prefer that it didn't undermine basic
usability of git :(

-- 
dwmw2

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help