Why is it that some people get Git naturally and some experience a world of frustration trying to use it?  I think the kind of problems you describe usually come up if you approach Git with a mindset formed by another SCM.  They are typical for people who are proficient with, say, SVN and who try to use Git thinking that Git must work something like SVN. (I&#x27;m using SVN as just an example here; it could be any other SCM, but I most frequently see people coming from SVN to really struggle with Git.) Well, Git is nothing like SVN and you&#x27;ll always be missing something if you try to understand Git through SVN concepts.  It&#x27;s best to forget what you used before and learn Git from a clean slate.
Maybe I was just really lucky to never having to learn SVN (or CSV or ClearCase), so Git concepts and workflows were clear and almost effortless to understand and use.  Or maybe it&#x27;s like the concept of pointers: some people get it right away and others never get it.