This is a collection of resources to help you learn Git in a way that will stick in your head.
Git is a software built upon a few key powerful concepts, that can be composed to do everything conceivable under the sun. So on top of them, it has been built one of the most extensive and complex command line user interfaces ever seen, with a plethora of options to deal with every possible use case. This entails that trying to learn Git by looking at how you use it is suicidal. You'll face some non-standard task, give a wrong command and end up stuck in a broken situation, with no clue on what to do next.
The right way is starting to learn Git internal structure, those few key concepts that make up Git. Namely the DAG, remotes and the three trees: working directory, index and HEAD. This way even if you don't remember the details of commands or face a non-standard task, you'll get your head around it and figure a way to do what you want to do.