LearnGitBranching is excellent to help one visualize what's going on with rebases, resets, and merges. I highly recommend it as well.
Not sure it's aiming at quite the same target user as the OP article though, which is targeting the true beginner. LearnGitBranching is maybe slightly more advanced?