http://pcottle.github.io/learnGitBranching/