Create Git Branch With Current Changes
Answer : If you hadn't made any commit yet, only (1: branch) and (3: checkout) would be enough. Or, in one command: git checkout -b newBranch As mentioned in the git reset man page: $ git branch topic/wip # (1) $ git reset --hard HEAD~3 # (2) NOTE: use $git reset --soft HEAD~3 (explanation below) $ git checkout topic/wip # (3) You have made some commits, but realize they were premature to be in the " master " branch. You want to continue polishing them in a topic branch, so create " topic/wip " branch off of the current HEAD . Rewind the master branch to get rid of those three commits. Switch to " topic/wip " branch and keep working. Note: due to the "destructive" effect of a git reset --hard command (it does resets the index and working tree. Any changes to tracked files in the working tree since <commit> are discarded), I would rather go with: $ git reset --soft HEAD~3 # (2) This would make sure I'm not losing any