Using git as a blog datastore

Awhile back I had this thought:

> Would it be possible to create a blog engine but with blog posts
> represented by git commit objects rather than text files?

This commit/blog post captures my notes as I work through the git
tooling infrastructure to see how feasible such a system would be.

Intro
-----

Here are some reasons why I think this could work:

- Commits already share a lot of similarities with blog posts. They
  have timestamps, an author field, built-in chronology, etc.
- The git tooling is mature, stable, widely tested, and powerful
- Sync and collaboration would be a breeze
- Markdown has made "plain text to HTML" a solved problem

How it would work
-----------------

Before doing anything, create these two aliases in your global (i.e.,
~/.gitconfig) file:

    $ git config --global alias.new "commit --allow-empty"
    $ git config --global alias.edit "commit --allow-empty --amend"

Alright, so the first step would be to initialize a new git
repository. Nothing special here.

    $ mkdir ~/src/commitblog && cd ~/src/commitblog
    $ git init

Now, run `git new`. An editor should pop-up waiting for a commit
message. Do a standard "Hello World" here.

Congrats. You've just made your first post!