News for hackers. Stuff that matters.
Re:I struggled with Git, so I'm making a game to spare other... by skeeter2020 on Sunday March 02, 2025 @01:06PM (#43233169)
I don't consider myself a very core or talented developer, but I do feel quite strongly that git from the cmd line is much easier than a GUI, but overall ridiculously hard regardless. The abstractions and visualizations in graphical interfaces is either too dense & complicated, or more likely hides what's actually happening; there's no way to reduce the inherient complexity.

My take: don't play the game. learn your basic required workflow from the command line and use the decent documentation to look up everything else.

Re:I struggled with Git, so I'm making a game to spare other... by mjburgess on Sunday March 02, 2025 @01:56PM (#43233689)
NB. I did explicitly say a GUI on top of a cli app is a broken approach. Your intuition comes from this -- that the git API is cli-first.

Source control should be designed graphically first, with a cli to automate. I routinely use tree-view and column view in macos finder to think-through fs organisation -- doing this as a sequence of cli commands would be masochistic.

Notice how all the best vcs tutorials are just providing basic visuals which would be better as the interface.

Re:I struggled with Git, so I'm making a game to spare other... by skydhash on Sunday March 02, 2025 @03:49PM (#43234904)
The thing that CLI have over GUI is programmability, which for programmers is a valuable property. As for me, any repeatable task, I automate away with various degree of effort and quality. If I find myself needing a particular set of commands and flag, I create an alias, a function, or a shell script for that, like `flac2mp3.sh` instead of hunting down through the shell history.

For most vcs tutorial, they don't often use why the history of changes is important, instead focusing on a set of usual commands. Why, not how. Once you have that philosophy down, the tool usage become much more efficient.

Re:I struggled with Git, so I'm making a game to spare other... by dingnuts on Sunday March 02, 2025 @04:24PM (#43235294)
I've been using magit for almost a decade now and it directly contradicts what you're saying simply by existing and being as awesome as it is
Re:I struggled with Git, so I'm making a game to spare other... by alwayslikethis on Sunday March 02, 2025 @08:57PM (#43237494)
I thought I would be just fine with the CLI but I was amazed by magit. A GUI can work well if it leans into the strengths of GUIs - discoverability of features and showing state. Magit does all of these exceptionally well. It helps that git's CLI is quite poorly designed with a lot of unintuitively named commands. How do you undo a commit? How to unstage a file? What's a stash? What's the difference between log and reflog?

With magit I've been able to do things I wouldn't bother before, like reverting small parts of hunks from past commits, doing partial staging of files (not including all changes), and dealing with stashes effectively.