I've just pulled a new branch, made some local changes, committed and tried to push. I was given this error: ! [rejected] groups -> groups (non-fast forward)
So I tried a to pull but was told Already up-to-date.
Here's what I get pulling then pushing.
~/dev$ git pull origin groups
Already up-to-date.
~/dev$ git push origin groups
To /mnt/ebs/git/repo.git
! [rejected] groups -> groups (non-fast forward)
error: failed to push some refs to '/mnt/ebs/git/repo.git'
Can anyone explain how this can be happening and how I can fix it?
When you pulled the branch, did you use the "--track" option (in order to keep you local branch tracking the remote branch). If you did not, it can explain that the "merge" command that does not work.
You can do the merge manually:
git fetch
git merge origin/groups
To compare local and remote repos, I suggest you this command (add it in an alias, it is usefull):
git log --graph --oneline --all --decorate
It will print the project history tree, showing the branch labels. So you will see where your branch and the origin branch diverge.
Note: if you want to preserve a linear history, instead of a "merge", you can do a "rebase" of your local branch on the remote before pushing:
git rebase origin/groups
git push origin groups