The core of Git isn't that complicated. A merkle tree backed by a content-addressable store. That's very much in the realm of possible within a week. It wasn't very easy to use in it's first iteration. All of the porcelain that has been built around it is where 90% of the development has gone.
Heh, an unintentional consequence of word choice :) “Porcelain” is used in contrast to “plumbing.” Both terms are used in the gut documentation to differentiate the more complex, user-facing features of Git (e.g. `git commit`) from the raw features used by other tool authors (e.g. `git for-each-ref`)