# create a new branch from the current state of master $ git branch some-new-branch-name # this is were your commit will live :)
# now go back to master $ git checkout master # remove the commit from the master branch $ git reset HEAD~ --hard # whoola!! you are back on track
the other way of doing this:
# undo the last commit, but leave the changes available $ git reset HEAD~ --soft $ git stash # move to the correct branch $ git checkout name-of-the-correct-branch $ git stash pop $ git add . # or add individual files $ git commit -m "your message here" # now your changes are on the correct branch
A lot of people suggest using cherry-pick for this situation too, so take your pick on whatever one makes the most sense to you!
yet another way:
$ git checkout name-of-the-correct-branch # grab the last commit to master $ git cherry-pick master # delete it from master $ git checkout master $ git reset HEAD~ --hard