A Piece of Git

You use Git, and maybe you even know the internals: all those blobs, trees, commits and refs make it look like Git is sane, well-designed and organized system. But is it, really?

After all, why are there three different kinds of rebase? What makes merge recursive? And what's the deal with line ending normalization? Edward Thomson shows off some of the weirder idiosyncrasies in Git and why it works the way it does.