You should start from the initial commit and move along to the next ones. Each commit has elaborate narrative as commit description. Hopefully it provides enough details to understand each individual step better.
Any comments / improvement suggestions are welcome.