Why Git is hard

learnbyexample@programming.dev to Programming@programming.dev – 84 points –
roadrunnertwice.dreamwidth.org
62

You are viewing a single comment

I usually use a gui but I know plenty of colleagues who exclusively use cli. I've never understood if it's an ego thing or what but it's an incredibly popular way to use git

I exclusively use CLI, it's not ego at all, I simply find typing what I want to be quicker than clicking buttons. I've written a bunch of aliases to automate my common workflows.

When I need to help a colleague who's made a mess of something, I can easily give them the command to fix it rather than finding the right options in their GUI of choice and it's often because of some broken abstraction in the GUI they got into the mess in the first place.

Yeah there are totally commands I use daily, but the visualization involved in looking at the log and available branches (which is a constant use case) is much easier in a gui for me. In fact I'd go as far as saying logs, diffs, and branching in cli are neigh unusable. The buttons I click while in the gui (like fetch/pull/commit) are largely used because at that point (after finding and checking out the right branch, etc) it would be slower to switch back to cli.

I only mentioned ego because I've seen multiple junior devs struggling with the command line resist using a gui even when it solves a specific problem they are having quite easily. To each their own though.

I use the CLI for simple commands, especially if helping someone on another PC and I don't have access to my preferred tool, but I honestly don't get people who use it religiously and never even try tools with GUIs. The convenience of being able to easily see the commit history, scroll through it, have a right click context menu or ability to just click it and see file changes (and then right click those files for additional options), is just something I can't abandon. Nowadays even the aliasing can be replicated in those tools if they support creation of custom commands so even that is a moot point - with some setup you can be as fast as with a CLI.

Meh I find I can do 95% of what I need through the cli just fine. Diff-ing can be annoying if you just want to skim through a commit but otherwise I don't see what I miss by using the cli

I do have a huge ego, but I'll claim it's a total coincidence that I use CLI git.

My main reason to use mostly CLI is the better error messages I get when something goes wrong.

My secondary reason is that my preferred GUI tools for git didn't used to have support for operations I do often such as 'cherry-pick' and 'rebase'. I think that is mostly solved now, but my habits change slow and I'm used to the CLI.

Haha fair. My experience though, is that cherry picking is easily done in gui and I've honestly never attempted on cli because it only takes me three clicks in Fork

Yeah. Cherry pick was the killer feature for CLI back when I was forming habits. Seems like it's built into most tools now, which is really nice.

Which to me is just wild unless you're doing something you wouldn't want to use an IDE for - and that's not actually that many professional things, if I'm being honest. But if you use an IDE, then it's far easier, faster and importantly doesn't take you out of your mental flow to just use the built-in git abstraction of that IDE.

O that's my pet peeve, I hate integrated git GUI's in IDE's. The only useful thing is file and code highlight for changes, other than that I disable that stuff as fast as possible.

There are things that my GUI of choice lack, so I occasionally type out a command, although I did also bind a couple of commands to GUI buttons, so there's that.