Git Reflog to Rescue after Hard Resets

On benefits of using Git reflog command

Today I was resetting a local Git repository to previous commits,, in order to trace back some changes which lead to Continious Integration tests failures. I did a few trail and error runs with:


git reset --hard SHA

Where SHA was taken from GitHub or git log. These commands were performed on my local branch which had some new changes commited locally, but not yet pushed to GitHub. Then, I found the working old commit I realized that I am stuck on it! There was a SHA for my latest commit and the command:


git log

wasn’t showing my latest commit either, because I moved the HEAD of the branch behind it. Thansk for an advice, this command saved me:


git reflog BRANCHNAME

It had a short SHA of my latest commit and I was able to reset HEAD back with reset. I knew that Git had my change save, but I wasn’t sure how to get them. As usual Git is a great technology… with a terrible user interface! :-)

Git reflog — a lifesaver!
Git reflog — a lifesaver!

More on git reflog:

Super Simple Backbone Starter Kit / Boilerplate

During AngelHack, more details in my previous blog post, I struggled to find simple BackboneJS Boilerplate to start building our fashion prototype quickly.
If you are not familiar with BackboneJS it is a very powerful MVC framework for building thick client applications. It has fully RESTful API support via it’s model methods. So after half an hour of going through Backbone Boilerplate and other samples and tutorials I ended up using Sample App with Backbone.js and Twitter Bootstrap as a foundation.

So after this experience I decided to come up with my own super simple BackboneJS boilerplate or starter kit. It has bare minimum but all the necessary components:

To make it work just download zip or fork and clone it from GitHub.com: https://github.com/azat-co/super-simple-backbone-starter-kit. Then launch index.html in your favorite HTTP web server.

It’s a single-file application. Everything Backbone related is in app.js. Templates are in separate files and loaded via RequireJS, and Text plug-in for RequireJS.