Git Internals – Learn by Building Your Own Git