This is similar to my another question ( Switch to another branch without changing the workspace files ) but solution that worked there, doesn't work now.
I needed to remove some changes, which were long time ago pushed to remote master. So I don't want to remove commits from master, but I want to change the files just like these changes were reverted. So I did this:
git branch limits
git checkout limits
git rebase --interactive <commit before the ones I wanted to remove>
So now in limits
I have the code like I'd like it in master. How can I "move" it to master? With the code from limits
I'd like to change to master
branch, but without changing any file in workspace, so I can then commit the changes as a new change to master
.
The answer to your stated question is:
$ git checkout master # switch to master branch
$ git reset --hard limits # hard-reset it to the limits commit
$ git reset --soft master@{1} # move the reference back to where it was, but
# don't modify the working tree or index
This will leave your working tree and index exactly as it would be if you had limits
checked out, but you will be on the master
branch at its original location.
However, the proper way to do something like this would be to git revert
each change that you are trying to undo.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With