March 3, 2026

Checkout? Switch? JJ? Chaos ensues

Show HN: Effective Git

Git guide drops; switch evangelists clash with “jj” rebels

TLDR: A friendly Git how-to guide sparked instant debate: some want newer, simpler commands, while others say forget Git and switch to jj, a modern tool. It matters because developers are desperate for fewer headaches, and the comments reveal a split between polishing the old and embracing the new.

Show HN alert: a plain-English Git survival guide, Effective Git, landed—and the comments lit up like a command-line Christmas tree. Git is the tool developers use to track changes to files, and this guide covers everyday moves like status, commit, fetch, and how to avoid blowing up your history. But the community instantly turned it into a command war. One camp cheered, “Great guide, but stop teaching the old stuff,” pushing the friendlier “switch” and “restore” commands instead of the confusing all-in-one “checkout.” The other camp skipped the debate entirely: ditch Git and learn jj, a modern system promising fewer headaches.

Newcomers loved the calm walkthroughs on conflicts and “fast-forward” merges (think: tidy family trees), while veterans rolled their eyes at anything recommending “checkout,” calling it a relic that does too much. Meanwhile, jj evangelists showed up like minimalism gurus at a hoarder’s garage sale, telling everyone to stop organizing the chaos and just move house. The jokes flew: memes about “Git being a rite of passage,” and shouts of “you’ll pry reflog (a history lifeline) from my cold hands.” The vibe? A helpful guide tried to make Git nicer, and the crowd turned it into a punchy showdown over whether to reform or rebel.

Key Points

  • The repository provides a best-practices reference for daily Git use, organized into Basic, Intermediate, and Advanced sections.
  • Basic topics include git status, git commit, git fetch, comparing references, and safeguarding contributions.
  • Intermediate topics cover a feature branch workflow, handling rejected pushes via pull or rebase, dry-run merges, conflict approaches, fast-forward merges, restoring to a specific commit, and detecting forced updates.
  • Advanced topics address amending the last commit, rewriting history with rebase and interactive rebase, using git reflog for insights, and leveraging git worktrees.
  • The document is structured with a table of contents to guide readers through the topics.

Hottest takes

"use git switch instead of checkout… and restore instead of checkout" — tomtom1337
"just learn jj already" — Valodim
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.