There doesn't seem to be an obvious way for concurrent access of a single git repo. E.g., if one user wants to checkout commit A, and another commit B, the only way I can think of of doing that is having clones.
That's fine for developing, of course - each user is expected to have a clone - but I can't imagine that it'd work nicely when you're using a repo with a server, and want to allow users to browse different commits. You'd need roughly as many clones on the server-side as there might be users.
And yet Github does just that. How does Github do it, or how might someone else, without using a large number of clones, and preferably also without many of the IO-expensive checkout operations?