Git labs
Git is a graph of commits plus a few movable pointers. These labs draw that graph, the three areas files travel through, and every pointer a command moves, so commands like reset, rebase and cherry-pick stop being guesswork.
2 free interactive labs — Git Commands, HEAD & Refs (Visual), Git Merge vs Rebase. Each one has an easy-to-hard set of examples, a written explanation and a FAQ, and runs entirely in your browser.
Every core git command drawn with arrows: three areas, commits, branches, HEAD and remotes.
Watch the commit graph change under merge, rebase and squash.