I found learning git to be very similar to learning vim.
Nothing felt intuitive. The interface for vim might in fact be unintuitive and that might make learning it take longer.
But once you learn it, the un-intuitiveness is no longer a barrier.
I don't argue that learning git is difficult no matter what your background is. But that's the nature of a tool that's almost 100% un-opinionated on how you do something.
I don't disagree with your comment but I think that's inevitable for this type of tool.
I don't see how an unintuitive CLI is 'inevitable' or 'in the nature' of such a tool.
How is it inevitable to have inconsistant flags for showing contextual help?
How is it in the nature of such a tool to have command names that are inconsistant (for example 'push' to not be the opposite of 'pull')?
I think in the end these things are relatively small oversights by Torvalds at the beginning, that have become rather difficult to fix now, after git has become such a standard tool - but it makes live really hard for every beginner. I mean imagine a GUI application where the help menu is sometimes accessed through F1, sometimes it's shift-F3. Imagine Edit->Copy would do something completely different than what people are used to form other similar programs. Even worse, in a GUI tool it's no big deal to fix those problems in version 2, but a CLI automatically becomes an API for other higher level tools such as GitHub and changing it would break it afterwards - so it's really important to get that interface right from the start.
I've never found the inconsistencies in the API the major learning hurdle for git. If that's the case then it's really too bad since, as you mentioned, it could have been avoided.
For me the hurdle was not the API. That's what documentation is for. It makes learning it inefficient to always check the docs but that's about all.
Nothing felt intuitive. The interface for vim might in fact be unintuitive and that might make learning it take longer.
But once you learn it, the un-intuitiveness is no longer a barrier.
I don't argue that learning git is difficult no matter what your background is. But that's the nature of a tool that's almost 100% un-opinionated on how you do something.
I don't disagree with your comment but I think that's inevitable for this type of tool.