How to move a pile of uncommitted changes from
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.