A developer staring at a terminal full of git commands with a look of existential dread
article

I Proudly Suck at Git

A 40-year coding veteran confesses his deep, abiding hatred of Git, his love of GitHub Desktop, and how AI agents finally liberated him from terminal shame.

Ryan E. HamiltonFebruary 18, 20268 min75 views
gitdeveloper-experienceai-toolsgithub-desktopclaude-codecursoropinion

I Proudly Suck at Git

I have Googled "empty commit git" at least 9,999,999,999 times in my software engineering career. And each time I do so, I look for the purple link that proudly states, "Welcome back, Ryan."

And I go and copy git commit --allow-empty -m "Your descriptive commit message" for the trillionth time.

...and I have 0.0000000 shame about this.

The Post That Made Me Feel Seen

Just recently, investor and entrepreneur Francois Arbour posted a confession on LinkedIn that hit me like a git push --force to the soul. The man has built companies. Exited companies. Invested in a hundred more. And his secret shame?

He absolutely hates Git.

Same, Francois. SAME.

His description of staring at a detached HEAD state while "frantically Googling git rebase --interactive --autosquash" was so accurate it felt like a personal attack. And his line about git reflog being "just code for 'I have made a terrible mistake'" might be the single most truthful sentence ever written about version control.

I immediately responded with what I can only describe as aggressive enthusiasm: "CAN I MEGA-LIKE THIS POST?!"

Because here's the thing. I've been writing code since I was in 2nd grade. Apple ][e. BASIC. I've held every title from "webmaster" to whatever the hell we're calling it now. Forty years of shipping software. And in all that time, Git has never once made me feel smart. Not once.

My Name Is Ryan, and I Use GitHub Desktop

I am, and have been for years, the PROUDEST user of GitHub Desktop.

There. I said it. Out loud. In writing. On the internet.

I use the terminal only when I absolutely must. Specifically: when I've done way too many shenanigans on my local branch and the big guns are warranted. Or when surgical precision is required. Or, of course, when I need that empty commit to trigger a remote build. You know, the one I Google every single time.

Other than that? I LOVE the GUI. I love the big bold button that says "Push origin". I love the visual diff view. I love that I can look at my branch history without parsing ASCII art that looks like a subway map designed by someone having a stroke.

And I have nothing to prove.

I started on an Apple ][ back in the 1980s. I've watched languages, frameworks, paradigms, and entire companies come and go. I've written BASIC, Pascal, C, C++, Java, JavaScript, TypeScript, Go, Clojure, Python, and probably thirty more I'm forgetting. I do not need to demonstrate my credibility by memorizing git cherry-pick --no-commit --strategy=recursive -X theirs.

Plain and simple, I love to save my time and brain space for more meaningful things than figuring out the complexities of a git rebase or hard reset or what have you.

Git: The Tool That Linus Built in 10 Days (and We've Been Suffering Ever Since)

Let's talk about how we got here.

In 2005, Linus Torvalds got into a licensing dispute with BitKeeper, the proprietary version control system the Linux kernel team was using. His response? He built Git. In roughly 10 to 14 days, depending on who you ask. And by his own admission, he never imagined it would last 20 years.

Well, here we are. Twenty-one years later. And nearly 95% of developers worldwide are using a tool that was built in the time it takes most of us to decide on a variable name.

James Schauer, another commenter on Francois's post, nailed it. He called Git "a car, in 1905, where the driver is expected to manually interject in a bunch of engine functions in order to drive." A "very complicated state model, with a huge number of operations you can do on it." He pointed out that Stack Overflow has 5 different answers for every Git question, which, yeah, is a very bad sign.

And the Stack Overflow numbers back this up. The question "How do I undo the most recent local commits in Git?" has been viewed over 16.5 million times. That's not a documentation gap. That's a design flaw wearing a trench coat.

For context, the only Stack Overflow question with more cultural staying power is "How do I exit Vim?", which passed 1 million views back in 2017 and hit 1.7 million by 2022. At peak hours, 80 people per hour were searching for that answer. Eighty humans an hour, trapped in a text editor, unable to leave. Like a software-themed escape room nobody signed up for.

Git and Vim. The two tools that have collectively traumatized more developers than any failed production deployment.

Enter the Agents (and My Rapidly Declining Terminal Usage)

Nowadays, in addition to GitHub Desktop, I use the GitHub CLI. But I don't use it directly. That would require typing things into a terminal. On purpose.

Instead, I boss my local agents around.

Sometimes I'll bark multi-step git commands directly into Cursor or Claude Code. "Hey, rebase this onto main, squash the last four commits, and write me a commit message that doesn't suck." And it does it. No Googling. No purple links. No existential dread.

Other times, when I'm doing AFK dev, I'll rig up some kind of local Git Orchestration Agent to handle all of the commit and push complexities. On each iteration of a development loop, for example, I'll have the agent handle the branching, the committing, the pushing, the PR creation. All of it. While I focus on the actual work.

Francois described this same feeling in his post. He tells his agent, "Hey, take these three features, put them on a new branch, squash the garbage commits, and tag it for release v2.0." And it just does it. Cherry-picking, rebasing, feature tagging. All the stuff that used to make my heart rate spike, handled by something that actually enjoys parsing DAGs.

JP Leblanc, my boss at CircleCI, chimed in on the same thread. He hasn't touched real production code in ages, but since getting back into it with AI tools, he leans on Claude Code to handle the Git parts so he doesn't [and I quote] "get yelled at" by a team of elite engineers (ironically, perhaps me being one of them). And, while I am publicly outing my boss for sucking at Git, I promise I suck at it harder than he does.

The biggest unlock in this world of AI-assisted development? You stop pretending you enjoy managing branch complexities. You stop performing competence at a tool that was never designed for human ergonomics. You just... build things again.

The AWS Tangent (Because I Suck at That, Too!)

This extends beyond Git...

When we at CircleCI were fiddling around with n8n and automated workflows last year, a fellow dev colleague and I wanted to test out self-hosting an automation server instance on AWS. We are both competent software engineers. We are both employed adults. And we both looked at each other and said: "Yeah, neither of us knows how to do this."

So we went to Claude and prompted something like, "Hey, Claude, assume that we are 0.0000000% competent in all things AWS and help us set up an EC2 instance for our n8n container."

Claude totally delivered. Walked us through security groups, IAM roles, Docker configs, the whole thing. Made us look at least decently competent. Maybe even very much so! (Who knows?)

Here's the pattern: the tool does the thing it's good at. I do the thing I'm good at. Nobody pretends to be an expert at something that doesn't deserve their brain cycles. That's not laziness. That's allocation of cognitive resources by a 40-year veteran who knows exactly where his time is best spent.

The Deeper Point (Yes, There Is One)

Look, I'm not anti-terminal. I'm not anti-CLI. I'm not even anti-Git, technically, since I use it every single day. I'm anti-pretending. I'm anti-the-culture that says real developers memorize arcane incantations and type them into black rectangles while scoffing at anyone who points and clicks a button.

[Pssht! C'mon, y'all...] I was a young coder when the mouse got popular...When windows-based GUIs were the future! So, don't hate.

I've been in this industry long enough to remember when "webmaster" was a job title. When we uploaded files via FTP. When version control meant naming your files index_final_v2_FINAL_reallyfinal.html. Git is better than that, obviously. But "better than FTP and filenames" is a low bar, and we've been giving Git credit for clearing it for two decades.

The arrival of AI coding agents has done something Git's documentation never could: it made the tool usable without a PhD in directed acyclic graphs. And for people like me, who have been silently suffering through git stash pop and git bisect and git rebase --onto for years, that's not a minor quality-of-life improvement. That's liberation.

The Part Where I Don't Apologize

I'm going to keep using GitHub Desktop. I'm going to keep Googling "empty commit git" and looking for my purple link. I'm going to keep yelling at agents to handle my rebases and cherry-picks and whatever other horrors Git has in store.

And I'm going to keep being loud about it.

Because Francois is right. We're finally getting back to building stuff instead of fighting with our tools. Forty years in, and the best thing that ever happened to my Git workflow was admitting I don't want one.

Who else is secretly relieved to never type git stash pop ever again?

I know I am. And I've got the purple links to prove it. 💾