Comprehensive, step-by-step guide to Comparing, Branching, Merging and Rebasing in the Git source control system