• FizzyOrange@programming.dev
    link
    fedilink
    arrow-up
    16
    arrow-down
    2
    ·
    10 days ago

    That’s a lot of words. I think the reasons are pretty simple:

    1. Some people just don’t care.
    2. The Git CLI is poorly designed e.g. the many different ways to delete something.
    3. Some Git concepts are very poorly named, e.g. the “index”, “ours/theirs”. This adds to the confusion.
    4. There are many Git GUIs but only a very small number of actually decent ones (if you’re wondering: GitX, SourceGit, Git Extensions, and the Git Graph VSCode extension).
    5. There are a lot of idiots out there telling people not to use Git GUIs, when they are clearly the best way to learn how to use Git. Its easy to get into a mess if you can’t see what you’re doing.
    6. Git isn’t actually as simple as us pros would like to think. The underlying model and even the implementation isn’t too complex (I’ve written a Git client form scratch; not too hard apart from the lack of specs/docs). But you can easily get into a state where you’re pulling from a remote and someone else has pushed to the same branch so you need to resolve that (oh btw don’t do what Git tells you to!), and maybe it involves submodules too, and you basically need to fully understand Git’s model and be pretty good at the awful CLI too to resolve it.
    • calcopiritus@lemmy.world
      link
      fedilink
      arrow-up
      4
      ·
      9 days ago

      The GUI thing is basically a religion.

      I’ve mentored plenty of juniors that could barely commit+push.

      Whenever they ask me for help to do anything remotely complicated the conversation is always the same.

      + you have to click here, then click there

      - but how do I do it in the CLI though?

      + Idk, I barely use the CLI. I believe it’s some git command. But you can easily do it in the GUI, it’s 2 clicks

      - <does the command> that didn’t work <wastes 20 minutes trying to make it work>

      + Fine, I’ll search for the command.

      <5 mins later>

      + Here is the command

      - that worked!

      Every. Fucking. Time.

      • FizzyOrange@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        9 days ago

        Yeah also people get into a mess and don’t understand the state of the repo. Like they’re organising files without ever running ls. If you ask these CLI fanatics for the solution they’ll say “you don’t need a GUI, just run git log --tree --oneline --decorate --all”… which is just a poor man’s GUI.