The first is by making a new branch, and then merging the diverging histories: git checkout -b tempfeature git checkout feature git merge tempfeature You can also use git stash to store changes ...
Alternatively, you can use git cherry-pick. This command copies commits from one branch to another, and is a nice way of picking out commits and moving them to new branches in a clean manner.