Pages

Monday, June 2, 2014

Remove unwanted file that has been committed several commits ago from git repository

Recently I have been developing a contacts management program and as usual I've been using git for source code management. This program stores all the contacts info in a file, say contacts.info.

Today I bumped into a problem I had never had:
I noticed I had committed contacts.info several commits ago. As you can imagine, I had no intention of making those contacts info public. I needed to delete that file from my git repository, from all the commits I've committed since I added contacts.info.

I ended up finding a very useful tool for the job: BFG-Repo-Cleaner.

If you have a similar problem, here is a step-by-step guide on how to completely remove an unwanted file that has been committed several commits ago from your git repository:
  1. Download BFG-Repo-Cleaner;
  2. Clone a bare copy of your repository:
    • git clone --mirror https://github.com/difusal/my-repo.git
  3. Delete contacts.info from all the commits:
    • java -jar bfg-1.11.6.jar --delete-files contacts.info my-repo.git/
  4. Push the repository to save changes:
    • git push
Yes, it is just that simple! If you browse through your past commits, any trace of contacts.info should now have been completely deleted.

Thursday, May 29, 2014

My first android app

I finally started learning android and spent the last few days working on my first app: an illustration of the Monty Hall problem.

Here are the github repository and the .apk download links.

Screenshots:

Friday, April 11, 2014

Sudoku Solver

With this program you can solve even the world's hardest sudoku!

Just insert the puzzle, click "Solve" and the solution will be shown.

Download link:

Repository: