Saturday, January 24, 2015

Gitlet: Git Implemented in JavaScript

Mary Rose Cook:

Over the last six years, I’ve become better at using Git for version control. But my conceptions of the index, the working copy, the object graph and remotes have just grown fuzzier.

Sometimes, I can only understand something by implementing it. So, I wrote Gitlet, my own version of Git. I pored over tutorials. I read articles about internals. I tried to understand how API commands work by reading the docs, then gave up and ran hundreds of experiments on repositories and rummaged through the .git directory to figure out the results.

I discovered that, if approached from the inside out, Git is easy to understand. It is the product of simple ideas that, when combined, produce something very deep and beautiful.

2 Comments RSS · Twitter


This looks like a great way to learn more about git, both for the original author and for anyone reading the documentation she's made through it.

For anyone needing an implementation of git in the browser, check out https://github.com/creationix/js-git too. That may be a bit more geared toward "production use" as that has been its goal.


I once re implemented about 30 of the most common Unix commands, complete with all options. Boy did I understand Unix after that.

Leave a Comment