How to move a pile of uncommitted changes from master
to topic
, because they should have been on the topic
branch in the first place.
While still on master
, tag the current HEAD for reference later:
$ git tag backup
Commit all your work to master
using reasonable commits for later:
$ git add ... $ git commit ... $ git add ... $ git commit ...
Switch to the other branch, which should work fine:
$ git checkout topic
Cherry-pick what you want from master
, or just all of it, dealing with merge conflicts as they arise:
$ git cherry-pick backup..master
Switch back to master
, wipe out those redundant commits, and delete the now superfluous tag:
$ git checkout master $ git reset --hard backup $ git tag -d backup
Note how you can reorganize the commits from master
as you are cherry-picking them.