Skip to content

Instantly share code, notes, and snippets.

@tonylukasavage
Created May 29, 2013 18:18
Show Gist options
  • Save tonylukasavage/5672490 to your computer and use it in GitHub Desktop.
Save tonylukasavage/5672490 to your computer and use it in GitHub Desktop.
Move all uncommitted changes to a new branch and revert the existing branch to HEAD. "master" has uncommitted changes. You decided you'd rather make those changes in "dev_branch". Here's how to move those uncommitted changes to "dev_branch" and then revert "master" to its last commit.
# get into the master branch
git checkout master
# create a new branch for the changes and check it out
git checkout -b dev_branch
# stash the changes until we revert master
git stash
# go back to master
git checkout master
# reset to the last commit
git reset --hard HEAD
# go back to dev_branch
git checkout dev_branch
# re-apply the stashed changes and you are good to go
git stash apply
@jhshah0111
Copy link

I don't know whether I am doing something wrong. But after "git stash apply" in the new branch, when I go back to my "base branch" which is master in my case, it brings all the changes back there. Any suggestion?

@mickro
Copy link

mickro commented May 26, 2021

# get into the master branch
git checkout master

# create a new branch for the changes and check it out
git checkout -b dev_branch

At this point you have a new branch with you changes uncommitted.

master is already at its HEAD state. And you new branch as well.

If you commit you changes at this step. Your changes are attached to your new branch. master stay unchanged.

What is the point doing the 4 last command?

# stash the changes until we revert master
git stash

# go back to master
git checkout master

# reset to the last commit
git reset --hard HEAD

# go back to dev_branch
git checkout dev_branch

# re-apply the stashed changes and you are good to go
git stash apply

... it does bring you back at step 2.

I don't know whether I am doing something wrong. But after "git stash apply" in the new branch, when I go back to my "base branch" which is master in my case, it brings all the changes back there. Any suggestion?

@jhshah0111 commit the change when you are in you new branch

@RitvikDayal
Copy link

Thankyou for saving my hours.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment