Nico Riedmann has written an interactive git tutorial meant to teach you how git works, not just which commands to execute.