git checkout -
git checkout 1258f0d0aae #detach from master
git branch -f master HEAD #exactly as above
#optionally reattach to master
git checkout master
git checkout <commit-id> .
git add .
git commit -m "Reverting to <commit-id>"
git push
$ git checkout <commit-id> .
git checkout existingbranch
git branch newBranch
git reset --hard HEAD~2 # go back 2 commits on existingBranch