Apply stash to different branch

MeesterPatat picture MeesterPatat · May 24, 2016 · Viewed 30.6k times · Source

I was accidentally working on the wrong branch. Now I want to transfer all my changes to the correct branch.

If I stash the changes and apply them on the correct branch, will it only add the uncommitted changes to the correct branch or every change/commit from the wrong branch that doesn't exist on the correct branch?

For example

Wrong branch has:

  • Commit a

  • Uncommitted Changes b

Correct branch has

  • Commit c

If I do git stash on the wrong branch and git apply stash in the correct branch, will it transfer commit a to the correct branch?

Answer

miguel_ibero picture miguel_ibero · May 24, 2016

I would do one stash, then reset (mixed so you don't lose the changes) the a commit, stash that, then change to the correct branch and pop both stashes.

git stash save "b"
git reset HEAD~
git stash save "a"
git checkout correct-branch
git stash pop
git commit -m "a"
git stash pop