So, i had to stop and delete a branch i'd been working on, I figured out a better way to build it, sure it meant throwing that code away but it made sense.
There were only 2 commits on this branch and neither would be needed, or so i thought.
Simple, I can run
git checkout develop and
git branch -d dead-feature, of course git warns me about this, but the branches content is no longer needed so replace that
-D and its all ok.
But wait... there was a migration on that branch... and its been run on my development system.
The migration file is now gone, entire branch gone in fact, and my database is now wrong without a simple way to rollback.
git reflog to save the day.
git reflog i found the commit in which i created the file, in my case its hash was
Now I just needed to save that file, so with a little help from
git show i can output that raw file:
git show 1f6a6e4:application/migrations/2014_01_22_173120_create_blah_blah_table.php > application/migrations/2014_01_22_173120_create_blah_blah_table.phpFinally all that's left is to rollback that last migration, remove that temp file and continue on to build the new feature.