Comment by andybak

5 years ago

> the model is simple and intuitive

I nearly spat out my drink. Git is many things but those aren't the first two words that would leap into my head.

Git model is simple.

What is complex is the hundred features and commands it provides on top of that model.

  • > Git model is simple.

    I strongly disagree.

    Let's list just basic git concepts that you're likely to encounter fairly early on: the working tree, staged commits, branches, remotes, stashes, detached heads, tags, submodules, merge conflicts, squashed commits, fast-forwards, rebasing, cherry-picking.

    Some of these you could choose to ignore - rebasing and submodules - but on the whole you need at least a cursory understanding of everything on that list to get by without a git angel to get you out of trouble. I still have a person I phone when anything out of the ordinary happens and I've taught git to other people!

  • Thats exactly wHat GUIs are good for. Make infrequenlty used features and options accessible.

    • But GUIs for git usually do not provide access to all the features. They implement a very small subset that is just as easy to use from cmdline.

      I'm also genuinely surprised that people use GUI for git. For merge I understand, but for all other tasks cmdline is easier and faster.

The model is relatively simple, but the UI is a disaster.

Which is exactly why people want better clients than the official git cli client.

  • I find that it has too many magic commands built-in so no-one really gets to learn the under-side of what's actually occuring so when it eventually breaks like everything does, you have no idea what you did wrong. An example would be how the git pull command is basically a bunch of different git fetch and merge commands.

    • Yes, but if it didn't exist people would say git's bad because everyone copies the same alias from StackOverflow, and it should just be built-in.