Over the weekend I worked on a small Android app. Since it was a small project and I was mostly working alone, I did not care to add version control. Once it was finished, I decided to push it to GitHub.
Up comes the terminal,
$ git init $ git add .
That is when I realized I had not updated the default
.gitignore. Happens all the time, no biggie.
I go ahead and update the file, and in a moment of reckless urgency, type
$ git rm -rf .
$ git rm -r --cached .
thereby deleting all my work, f*@#! I had a feeling that since I had at least added the files to the git index, there might be a copy somewhere. Turns out, there was.
$ git fsck --lost-found
recovered all my files into
.git/lost-found/other, yay!. The problem was, that the filenames didn’t make a lot of sense to me
548d4722c20c7236e60d6f7ace636032b2954036, and I didn’t have a file tree in the index.
In comes python. A short script to match all the files that start with our package name, and I had all of my classes.
import os, glob for filename in glob.glob("./*"): searchfile = open(filename, "r") firstline = searchfile.readline() if "com.moldedbits.chip" in firstline: print filename continue
Small modifications to the script got all the resource files as well, and the day was saved.
The moldedbits Team