I’m disappointed that this headline will lead to more clicks. This is your reminder that in git the branch name is just a pointer to a commit. Renaming that pointer is relatively seamless on GitHub (https://github.com/github/renaming?tab=readme-ov-file#rename...). Also, git 3.0 isn’t forcing this change on existing repos, just new ones that no automation depends on. And if you really like the old name that’s always an option for your repos. Remember, it’s just a pointer.
The other git 3.0 changes are more consequential and worthy of discussion - changing from SHA-1 to SHA-256 for greater security and performance, changing the storage format for performance and introducing Rust.
Honest to God not something I care about but: this is pretty much the nail in the coffin for “master”. I do know some people _did_ care about the name. Sometimes surprisingly senior people who never supported a tech upgrade want the name changed. In any event, it’s done, “main” won, it’s fine, let’s move on.
Seeing some of the complaints around this feels like people are somehow still stuck in 2020 instead of 2025. People need to do a fresh pull down from main and update their arguments.
Frankly I don't really care either way, main is shorter and conveys the same meaning so by my metrics it's better. You can override the default to be whatever you want.
Don't know why people here got triggered by DEI, but the "master" naming is just bad, "main" is actually a better and more generic description.
The word "master" means someone/thing that has the capability of controlling things, like "Mastered", "Master Degree" etc.
But in most Git contexts, "master" is just "one of the breach that we hand picked to put our finest results in", that's not mastering anything, it just means "if you know what's best for you (or not), just use this one".
Another similar wording is in IDE hard drives. Remember the fun time where you can to setup jumpers before your secondary IDE hard drive would work? Yeah that secondary drive is called "slave". I'm still confused why the first drive must be called "master" since I never see it whipping any other drives to make them work harder or really doing anything that's remotely controlling.
The computer guys in the old times really have a weird taste in naming things.
All the woke stuff was so annoying past 5 years. I don't remember the company name but it was one of those feature flag toggle companies. For a year straight they communicated this change they were doing, basically replacing blacklist and whitelist with more PC terms. Someone at the company decided to not only make it a recommended change, but that the old usage would BREAK the app. They couldn't handle the word blacklist in the codebase so much that they were willing to punish their users. It felt like I was getting an email from them every 5 days for a year.
That all being said - main is shorter than master and I would say most of us here, probably 95%, are "used to it" and it would actually be annoying to go back to master.
Turns out people really, really, REALLY don't like to be forced to change their decades old thinking, vocabulary and definitions of words when they feel its either pointless busy work, propagation of an ideology they do not support or a straight up attempt at mind control.
I prefer to default to `develop` and then eventually branch out to `release`: that way my branch names are pretty explicit. It seemed silly to me to start with a "central" branch, no matter the wording, because that's not actually how Git works (and it's rather uninformative).
For... some in the comment section, please recall the HN guideline: "Comments should get more thoughtful and substantive, not less, as a topic gets more divisive."
At the end of the day, all I really care about is consistency. It's annoying to switch between projects which use different branch names to describe the same thing.
That being said, this is a dumb reason to introduce inconsistency.
Been using 'sensei' as my default branch name for a couple years now.
I get to feel like a ninja when I commit, the conceptual meaning is close to that of the previous term, and there's no historical baggage related to the US. Win-win-win?
Personally I think only branch that's minimally needed is "dev", with tags for releases. "master" or "main" should just be a pointer to the latest non-hotfix tag.
35 comments
[ 4.5 ms ] story [ 87.6 ms ] threadThe other git 3.0 changes are more consequential and worthy of discussion - changing from SHA-1 to SHA-256 for greater security and performance, changing the storage format for performance and introducing Rust.
Frankly I don't really care either way, main is shorter and conveys the same meaning so by my metrics it's better. You can override the default to be whatever you want.
The word "master" means someone/thing that has the capability of controlling things, like "Mastered", "Master Degree" etc.
But in most Git contexts, "master" is just "one of the breach that we hand picked to put our finest results in", that's not mastering anything, it just means "if you know what's best for you (or not), just use this one".
Another similar wording is in IDE hard drives. Remember the fun time where you can to setup jumpers before your secondary IDE hard drive would work? Yeah that secondary drive is called "slave". I'm still confused why the first drive must be called "master" since I never see it whipping any other drives to make them work harder or really doing anything that's remotely controlling.
The computer guys in the old times really have a weird taste in naming things.
That all being said - main is shorter than master and I would say most of us here, probably 95%, are "used to it" and it would actually be annoying to go back to master.
If this blocks you from "just want to do real work" maybe overthink your setup and adjust your pipelines?
For... some in the comment section, please recall the HN guideline: "Comments should get more thoughtful and substantive, not less, as a topic gets more divisive."
Their current state of "decentralization" is "the developer might still have a copy of the repo on his laptop".
What does this mean, to compile git v3 I will need Rust ?
As for 'main' I always used that, I do not know how that happened since I use git the say way I used RCS ages ago.
That being said, this is a dumb reason to introduce inconsistency.
I get to feel like a ninja when I commit, the conceptual meaning is close to that of the previous term, and there's no historical baggage related to the US. Win-win-win?
I'll be keeping “master”, than you very much.