Once you understand this, Git really does become simple. All you have to do is map each command to the actual operation on the DAG.
This video really explains it quite well, it's the one video that allowed me to fully grasp everything: https://www.youtube.com/watch?v=1ffBJ4sVUb4