The way to reset the head and do the revert to the previous commit is through
$ git reset HEAD^ --hard
$ git push <branchname> -f
But sometimes it might not be accepted in the remote branch:
To ssh:<git repo>
! [rejected] develop -> develop (non-fast-forward)
error: failed to push some refs to 'ssh:<git repo>'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
then the other way to do is
git revert HEAD
git push <remote branch>
This works fine.
NOTE: remember if the git push -f <force>
failed and then you try to revert. Do a git pull
before, so that remote and local are in sync and then try git revert
.
Check with git log
to make sure the remote and local are at same point of commit with same SHA1..
git revert
A --> B --> C -->D
A--> B --> C --> D --> ^D(taking out the changes and committing reverted diffs)