On the other hand, I don't know who these articles are really for. I have _never_ met a developer who struggles with git. Not many claim to understand it deeply, but all can rebase, cherry-pick, use the reflog, etc. and almost never do they run into issues.
It mystifies me. Git isn't hard, nor complicated. "Checkout" has a few too many meanings, and thats the singular gripe I have with it.
I’m about to roll out git to a team of 30 windows devs of the kind that do NOT like using command line (which is a perfectly sensible thing on Windows I should add, it’s rarely needed there and most command line tools including the shell itself sucks). I assure you they will find it complicated. I’ll insist we switch to git but it’s still going to be an uphill battle. Some will surely struggle also a year from now.
Windows user here, tho' I don't think that has much to do with my analysis/opinion. Ultimately, to me, the dev via Git is doing something that is best explained visually. It seems counter-intuitive to type commands for what is visual, at the very leaat it's unnerving (as if we don't have enough friction and stress in our day already).
To me, Git via the command line, constitutes industry "jargon". It's used - wrongly - to help exclude certain people within the broader culture. Git + CL === elitist.
It's also anti-dog food'ing. But perhaps this helps explain why so many UIs and UXs are so subpar? That is, the less you use something (i.e., a proper UI) the less you learn about them?
What about using git plus a shell make you an elitist? What if I used something else from a shell that isn’t as negatively perceived as git? I’ve used git with a ui (early on) and a shell (later) and I don’t understand what makes it elitist. Figure out what tools make you the most productive. If vim makes you more productive, great. If a full blown IDE makes you more productive, great. I don’t understand the mindset around being critical of someone doing something in a way that works for them.
I think the right approach here is to figure out how to use git in the company IDE. Then, have a presentation / workshop about how to use git in the IDE.
Personally I prefer the command line, but I imagine your coworkers will be a lot more receptive to using version control tools the way they're used to.
If you're concerned about command line complexity, you can try out gitless: https://gitless.com
It's a simplified command line interface to git, designed by looking at how users actually use git.
You have a point. But certainly, we could do better, especially since it's such an important tool. I'm certainly not disputing the concepts. They're necessary. But the tool? In that context "what if" doesn't feel like a bad idea either.
It mystifies me. Git isn't hard, nor complicated. "Checkout" has a few too many meanings, and thats the singular gripe I have with it.