The likely reason is that at some point you either --amend/ed a commit or rebased a few commits, such that the copy that Github had was no longer up to date with what you had locally.
You have now done some extra work locally on top of that changed commit and github is sayin that what it had as the tip of master is "ahead" of your series (it says you are behind, or at least took a side turn). The good news is that becuase of the 'pull' (which is fetch then merge), you will have a local copy of what was at Github, even though later you overwrote it (that copy) with the --force. The branch origin/master (assuming normal conventions) should be the old version (held locally). It takes a moment or two to realise that 'rtb's (remote tracking branches) are actually your local copy!. To get a visualisation of your project, try using the `gitk` tool (via the command line) as `gitk --all &` (tidbit: the & allows you to continue with the command line and use gitk at the same time) hope this helps Philip ----- Original Message ----- From: Torsten Anders To: Git for human beings Sent: Saturday, July 09, 2016 12:48 PM Subject: [git-users] Problems pushing -- remote branch went backwards "in time" Dear all, I need some help to get some git repository back to functioning properly. I am developing some project completely on my own, and I have a local and a remove repository/branch (the latter at GitHub). I started development two years ago, then the project paused for a while, and now I wanted to push a few more commits. I was surprised to get the following error message. $ git push To [email protected]:user/project.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to '[email protected]:user/project.git' hint: Updates were rejected because a pushed branch tip is behind its remote hint: counterpart. Check out this branch and integrate the remote changes hint: (e.g. 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. No-one except me ever pushed anything to the remove branch, so I had no idea where this came from. I tried to do what the error message said. Everything was up-to-date as expected. $ git pull Already up-to-date. I again tried to push, but still got the same error message as above. So, I searched for possible solutions in the git documentation and online, and then I did what some recommended, because I knew as the only developer I could not overwrite the work of anyone else. Before doing this, my local branch was 17 commits ahead of the remote branch. $ git push --force Total 0 (delta 0), reused 0 (delta 0) To [email protected]:user/project.git + d28162f...e083c14 master -> master (forced update) Unfortunately, this did not work out as planned, instead of pushing the new 17 commits to the remote branch, the remote branch went back to an older version now 34 commits behind my local branch. $ git status On branch origin-master Your branch is ahead of 'origin/master' by 34 commits. (use "git push" to publish your local commits) nothing to commit, working directory clean Now, before accidentally actually ruining anything I decided to better ask this mailing list. What do you suggest in this situation. Thanks a lot! Best, Torsten Anders PS: I am using git version 2.0.1 on OS X (10.9.5). I may add that in addition to invoking git directly at the command line I commonly use the Emacs package magit. I assume I updated that package during the two years before the new push trial, and I tried pushing with magit first. Not sure whether that could have caused some problem. -- You received this message because you are subscribed to the Google Groups "Git for human beings" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Git for human beings" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
