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 .
instead of
$ 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.
Happy coding!
The moldedbits Team