Please take the following friendly advice: if you don't know the difference between a 'command line tool' and a 'programming language' - then maybe you don't know what you're talking about. It's ok, if you have some humility, you can improve and overcome.
FYI I'm well aware that systems such as CVS have 'abstractions' that diagrams could possibly help. That said 'diagrams' are relate the the 'inherent abstractions' in many things, and yet they are used very seldom in Stack Exchange.
The fact is - git is quite obviously very complicated, more complicated than it needs to be, and poses risks that most other tools do not.
The bizarre myopia of those not willing to concede that, and the inherent risks is problematic.
It speaks to a specific kind of intellectual arrogance within CompSci and it's a huge blind spot for the profession.
Every git question - even the most mundane - is a rabbit hole:
"What's the difference between Git Pull and Git Fetch?" [2]
That should be easy enough - but no - there is a 35 comments (only one of the many answers) to argue about the specific nature of what is happening, and no full agreement on some material things.
This is all exemplary of a 'bad product'. A 'good product' would provide a definition, and a few comments on possible corner cases - and that's it.
Git is what happens when you take a 'very powerful, but complicated concept' - and then don't manage it as a product, rather, just lazily throw complex command lines on the fire and let it stir. We are wasting a lot of time on Git.
Please take the following friendly advice: if you don't know the difference between a 'command line tool' and a 'programming language' - then maybe you don't know what you're talking about. It's ok, if you have some humility, you can improve and overcome.
FYI I'm well aware that systems such as CVS have 'abstractions' that diagrams could possibly help. That said 'diagrams' are relate the the 'inherent abstractions' in many things, and yet they are used very seldom in Stack Exchange.
The fact is - git is quite obviously very complicated, more complicated than it needs to be, and poses risks that most other tools do not.
The bizarre myopia of those not willing to concede that, and the inherent risks is problematic.
It speaks to a specific kind of intellectual arrogance within CompSci and it's a huge blind spot for the profession.
Every git question - even the most mundane - is a rabbit hole:
"What's the difference between Git Pull and Git Fetch?" [2]
That should be easy enough - but no - there is a 35 comments (only one of the many answers) to argue about the specific nature of what is happening, and no full agreement on some material things.
This is all exemplary of a 'bad product'. A 'good product' would provide a definition, and a few comments on possible corner cases - and that's it.
Git is what happens when you take a 'very powerful, but complicated concept' - and then don't manage it as a product, rather, just lazily throw complex command lines on the fire and let it stir. We are wasting a lot of time on Git.
[1] https://www.google.com/search?q=awk&rlz=1C5CHFA_enCA869CA869...
[2] https://stackoverflow.com/questions/292357/what-is-the-diffe...
[2]