10 Years of Git: An Interview with Git Creator Linus Torvalds

AtlassianGit10year

Linux.com reminds us that git is celebrating its 10th birthday this year.  An interview with git creator Linus Torvalds sheds some light on to how and why it happened, and how long it took.

You can actually see how it all took shape in the git source code repository, except for the very first day or so. It took about a day to get to be “self-hosting” so that I could start committing things into git using git itself, so the first day or so is hidden, but everything else is there. The work was clearly mostly during the day, but there’s a few midnight entries and a couple of 2 a.m. ones. The most interesting part is how quickly it took shape ; the very first commit in the git tree is not a lot of code, but it already did the basics – enough to commit itself. The trick wasn’t really so much the coding but coming up with how it organizes the data.

So I’d like to stress that while it really came together in just about ten days or so (at which point I did my first *kernel* commit using git), it wasn’t like it was some kind of mad dash of coding. The actual amount of that early code is actually fairly small, it all depended on getting the basic ideas right.

Very impressive!

And, of course: HAPPY BIRTHDAY GIT!  The world is a much better place with you.

GitHub Archive

Open-source developers all over the world are working on millions of projects: writing code & documentation, fixing & submitting bugs, and so forth. GitHub Archive is a project to record the public GitHub timeline, archive it, and make it easily accessible for further analysis.

githubarchive

git-stats – a GitHub-like contributions calendar, but locally, with all your git commits

git-stats – a GitHub-like contributions calendar, but locally, with all your git commits

git-stats

Gitlet – git implemented in JavaScript

Gitlet – git implemented in JavaScript.  Why, you ask?

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 throught 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.

Spoken like a true hacker.  My hat is off to you, sir.