43
submitted 4 months ago* (last edited 4 months ago) by canpolat@programming.dev to c/git@programming.dev

I used CVS and ClearCase before moving into Git, and it took me some time to adjust to the fact that the cost of branching in Git is much much less than ClearCase. And getting into the "distributed" mindset didn't happen overnight.

you are viewing a single comment's thread
view the rest of the comments
[-] lysdexic@programming.dev -2 points 4 months ago

Git is no different. But it sure feels like it never took the idea of a polished user experience seriously.

I've seen this sort of opinion surface often,but it never comes with specific examples. This takes away from the credibility of any of these claims.

Can you provide a single example that you feel illustrates the roughest aspect of Git's user experience?

[-] FizzyOrange@programming.dev 5 points 4 months ago

Yeah sure. git push says "did you mean git push -u branchname origin". Yes obviously I meant that. I always mean that.

I'd been copying and pasting that for about 5 years before I discovered there's a feature (auto branch setup or something) which means it will automatically do that. But it's not mentioned in the error message! Why?

Git has a load of --fixed-behaviour flags like that that are just not on by default and never mentioned.

The terminology is very poorly chosen in a lot of cases. "The index"? Wtf is that? "Staging area" is at least slightly better but would "draft commit" have been too much to ask? Ours/theirs is also a stonkingly bad choice of words. How does Git know which code is mine? It doesn't. Hell it isn't even consistent about which way around they are.

Someone has force pushed a branch and I want to update my local ref (without typing the whole branch name again). git pull gives a wall of text without the answer, which is.... git reset --hard @{u}. Catchy!

Or maybe I've got a branch that is tracking my fork but I want to pull from upstream. Can I do git pull upstream? Nope. I have to repeat the branch name git pull upstream branch-i-am-on. (Please don't say "but git doesn't know which branch you want to pull.)

Then there's the error messages... Make a branch called foo/bar. Now try to check out a remote branch foo. See that nice explanation about how git branches are actually files and directories, not just strings? Nope? Huh.

This is just a few I can remember off the top of my head but it's the tip of the iceberg.

[-] Test_Tickles@lemmynsfw.com 3 points 4 months ago

The completely useless error messages kill me. And the commands that don't do what they say... WTF is the point in "clean" and "force" if they don't clean or force? And then there's the inconsistency in command arguments. With one you have to use force, even though it doesn't actually force, and the other you have to use "hard". Hard? I mean I guess hard makes sense once you realize that force doesn't actually mean force. Now I'm just waiting to run across the switch "--seriouslyguysimeanitthistime".

OMG, I can't up vote this thread enough... git is such a purposefully exclusionary step in software development that I can't believe it is the preferred solution. It is very powerful, but it is painfully obvious that no one has ever gone back and said, "but what if anyone else who wants to use this is not a Linux cli guru and already has an expert understanding of git commands?". Why is it that learning to check in code is significantly harder than learning the actual IDEs that the devel uses to develop the code?

[-] FizzyOrange@programming.dev 3 points 4 months ago

It is very powerful, but it is painfully obvious that no one has ever gone back and said, “but what if anyone else who wants to use this is not a Linux cli guru and already has an expert understanding of git commands?”.

This x100. I mean I think I know the answer - Git was written by a C kernel guy, and the devs that it attracted are C guys. The kind of people who think user friendliness is a weakness. Guess how you contribute a patch to Git? Well step 1 is reading a 10 page essay... Needless to say that isn't going to attract many people that care about beginners.

load more comments (1 replies)
load more comments (6 replies)
this post was submitted on 26 May 2024
43 points (92.2% liked)

Git

2860 readers
1 users here now

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Resources

Rules

  1. Follow programming.dev rules
  2. Be excellent to each other, no hostility towards users for any reason
  3. No spam of tools/companies/advertisements. It’s OK to post your own stuff part of the time, but the primary use of the community should not be self-promotion.

Git Logo by Jason Long is licensed under the Creative Commons Attribution 3.0 Unported License.

founded 1 year ago
MODERATORS