Created
September 3, 2014 13:41
-
-
Save caseyw/3a1d03650a74905f2be4 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Walk all commits back to a certain commit | |
git revert --no-commit 0766c053..HEAD | |
git commit | |
Comment from author (Yarin): | |
Lots of complicated and dangerous answers here, but it's actually easy: | |
git revert --no-commit 0766c053..HEAD | |
git commit | |
This will revert everything from the HEAD back to the commit hash, meaning it will recreate that commit state in the working tree as if every commit since had been walked back. You can then commit the current tree, and it will create a brand new commit essentially equivalent to the commit you "reverted" to. | |
(The --no-commit flag lets git revert all the commits at once- otherwise you'll be prompted for a message for each commit in the range, littering your history with unnecessary new commits.) | |
This is a safe and easy way to rollback to a previous state. No history is destroyed, so it can be used for commits that have already been made public. | |
Edit and comment by Cupcake: | |
If you really do want to have individual commits (instead of reverting everything with one big commit), then you can pass --no-edit instead of --no-commit, so that you don't have to edit a commit message for each reversion. – Cupcake |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment