Git 3.0 will use main as the default branch

Scope of the change (Git 3.0)

  • Default branch for new repos will be main; existing repos are unaffected.
  • Users can still globally override the default name (e.g. via init.defaultBranch).
  • Several commenters argue the real 3.0 news is hash-format changes (SHA‑256, storage, Rust), not branch naming.

Arguments in favor of main

  • Seen as nearly zero-cost: a one-time config change or minor script updates.
  • Considered clearer and more accurate: Git has no true “master” in a distributed sense; “main”, “primary” or “default” better match the role.
  • “Master” in Git inherits from BitKeeper’s explicit master/slave model, which many view as bad historical baggage.
  • Broader concern about “master/slave”, “blacklist/whitelist” language in tech; proponents say small wording fixes are easy, kind, and symbolically important.
  • Some emphasize “negative liberty”: it’s better to avoid defaults that can evoke slavery for some users, especially when the alternative is equally functional.
  • Several note that internal tooling cleanups prompted by the change were actually beneficial (removing hardcoded branch names).

Arguments against / skepticism

  • Many see the rename as performative DEI or “virtue signaling” pushed by a vocal minority, often white, without clear evidence that affected groups requested it or care.
  • Concerns about real but diffuse costs: broken tutorials and scripts, confusion for beginners, bugs during the transition (Git vs GitHub defaults diverging).
  • Some argue offense requires intent; “master” has long non-slavery meanings (master copy, mastering audio, master’s degree, master key), and context should suffice.
  • Worry about a “euphemism treadmill” and “heckler’s veto”: once you concede here, any term can be targeted; jokes extend this to man pages, kill() functions, containers, jails, etc.
  • A few frame it as “newspeak” or ideological language-policing and claim backlash over such issues fuels broader political polarization.

Alternative naming preferences

  • Some prefer domain-specific or workflow-based defaults: develop, release, default, trunk, stable, or even whimsical names (sensei, etc.).
  • Others say they don’t care about the word itself, only cross-project consistency; the GitHub/Git mismatch was the most annoying part.

Meta-observations

  • Several comments note that arguing about this likely consumed far more time than the actual rename work.
  • There is visible fatigue with both the “woke” vs “anti-woke” framing and with HN’s increasing resistance to change in general.