Steve Bennett, an Australian developer, writes about Git usability, maps, vector tiles, and cycle touring.
HN commenters mostly cite his 2012 post on Git's UI problems as a classic that still matches their frustrations, and also link his map work.
I think you are seeing it as a software developer as opposed to (say) a biologist on the first year of their PhD who just wants to keep their scripts safe. Mercurial's strong point (IMO) was to cater to the 90% of developers who work with two-to-three colleagues on a single branch - you could always make things more complex if needed (as evidenced by Firefox doing just fine), but the defaults were always more user-friendly than git's.
For a more time-appropriate critique, this post [1] from 2012 gives an overview of what working with Git felt like at the time when git was being popularized as an alternative to Subversion (including a frequent comment of "use Mercurial instead!"). It's also worth noting that git's error messages have become more helpful since - while the documentation for git-rebase used to be "Forward-port local commits to the updated upstream head", it now reads "Reapply commits on top of another base tip".
[1] https://stevebennett.me/2012/02/24/10-things-i-hate-about-git/
Are you serious? Git is by far the least user-friendly version control system I've used (Mercurial being the best).
Here are some longer articles explaining why git sucks so much (from a convenience / user friendliness point of view):
http://reprog.wordpress.com/2010/05/10/git-is-a-harrier-jump-jet-and-not-in-a-good-way/
http://merrigrove.blogspot.co.uk/2014/02/why-heck-is-git-so-hard-places-model-ok.html
http://stevebennett.me/2012/02/24/10-things-i-hate-about-git/
Version control is one of those annoying admin tasks that you have to do and what to think about as little as possible. Git makes you think about it a lot.
This is a good article:
https://stevebennett.me/2012/02/24/10-things-i-hate-about-git/
> Once you understand Git's data model, the UI is perfectly intuitive
So it's not intuitive at all.
Not to mention that every damn command is inconsistent with every other command! To remove a file, git rm. To remove a branch, git branch -D. To remove a commit, git reset --hard HEAD^. How is this intuitive, consistent, or even sane?
"I understand git" and "git is easily understandable" are completely different. Git is not easily understandable, at all.
Which is awful, because there's nothing stopping usability development in CLI environments (look at Cortana or Siri, for example, or to a lesser extent PowerShell) except that awful stagnation.
People shouldn't have to bend their brain to work with a machine. The machine should be designed to work with human brains.
And to be that snarky person for a second: I've heard a lot of people who actually love Linux CLIs still complaining about Git's weird-ass behaviors. https://stevebennett.me/2012/02/24/10-things-i-hate-about-git/
Wow, another great writeup. I did a sort of half-arsed version of that here: https://stevebennett.me/2020/01/03/alternative-earth-procedurally-generated-map-using-vector-tiles/
I basically took a square grid and then just randomly displaced each of the vertices a bit to disguise the fact that there is a grid at all. I just wasn't really clever enough to come up with any other way to do deterministic procedural generation.
This distinction between branches and bookmarks looks like one of the things missing the most from git. Grab a random branch from some place and try to guess whether the committer intends to rewrite it in the future or not: good luck.
For the rest: https://stevebennett.me/2012/02/24/10-things-i-hate-about-git/