megclaypool
3/6/2019 - 8:14 AM

Restore a Previous Version of my Project to a Shiny New Git Branch

[Restore a Previous Version of my Project to a Shiny New Git Branch]

Restoring a Revision in a New Local Branch

As I said, using the reset command on your HEAD branch is a quite drastic action: it will remove any commits (on this branch) that came after the specified revision. If you're sure that this is what you want, everything is fine.

However, there is also a "safer" way in case you'd prefer leaving your current HEAD branch untouched. Since "branches" are so cheap and easy in Git, we can easily create a new branch which starts at that old revision:

$ git checkout -b old-project-state 0ad5a7a6

Normally, the checkout command is used to just switch branches. However, providing the -b parameter, you can also let it create a new branch (named "old-project-state" in this example). If you don't want it to start at the current HEAD revision, you also need to provide a commit hash - the old project revision we want to restore.

Voilà: you now have a new branch named "old-project-state" reflecting the old version of your project - without touching or even removing any other commits or branches.

How can I restore a previous version of my project?