First, Github is making some changes.
GitHub is working on replacing the term "master" on its service with a neutral term like "main" to avoid any unnecessary references to slavery, its CEO said on Friday.via zdnet
What the internet is saying
There's some interesting conversations I was having in with my dev friends on Slack. Much is shrugging.
But the vocal parts of the internet?
Twitter is typical Twitter - lots of opinions in 240 characters.
Reddit commenters are pretty negative (as usual to anything).
Heck, within that Zdnet post are some really awful comments.
My personal opinion?
There's no slave model in Git. I personally think it's a stretch to connect the word Master with the whole Master/Slave concept in tech.
Opinions are like butts
Everyone has opinions. You're allowed to have opinions. You also have a butt.
I started to really think this through - is changing the word master to main important to me?
Nope!
It doesn't affect me in the slightest.
So my opinion is kinda moot. It doesn't matter. It's a waste of energy to think about. And of all the hills to die on, this is not one of them.
But let's go through the excuses because why not?
Excuses you'll hear why it's a bad idea
Excuse 1: It's just language policing
As a developer, why are you so invested?
You can name anything with anything.
sayHello & i are the same.
const sayHello = 'Hello, there';
const i = 'Hello, there';
Now, i doesn't make sense as a variable name at all. There's no meaning what i represents and it's a terrible practice.
While changing master to main doesn't have any implications.
Excuse 2: It's a slippery slope
As a developer, programming is a slippery slope!
Languages change over time. Tedtalk video That's how languages work. Go ahead - travel back in time with your English speaking skills. You definitely won't be able to speak the same English to another english speaker in the 1200s.
When Python removes the master/slave terminology, Python didn't break. Life moves on.
Excuse 3: It makes the internet/tech nerds mad
So? Remember the opinions == butts part? This guy from 2015 thinks React is bad
People get mad and butthurt about everything.
Excuse 4: Why change it now? It was fine how it was!
This screams 'We've Always Done It This Way', which is one of the most dangerous phrases in business.
'We've Always Done It This Way' is a fundamentally broken concept. If it wasn't, we'd still be using Netscape and writing pure HTML/CSS.
Excuse 5: There's nothing innovative about changing it to main
Finally you're getting it! It's a nothing burger.
But at the end of the day, the change is the change and life moves on.
But if you still have very strong opinions and feel like you're fighting against some weird 1984-cult language, I invite you to relax and take a break from the internet, and when you're ready, put your opinions here.

Oldest comments (68)
Nice website, the place where I should put my opinions.
I personally think GitHub guy is getting moody... (Will I be sued for being too sexist, BTW?)
It seems that GitHub is just trying to follow Internet standard / trends.
Replacing master in git
Damien Cosset ・ Jun 13 ・ 4 min read
Excuse 6 still holds up: its the way i want it.
Yep this is exactly what I figured.
I won’t exactly go back and change every single default branch of my existing repos to “main”, but if GitHub wants to change the new default branch names to it, that doesn’t bother me or change things in the slightest
everyone's negative reactions to this are so revealing.
if it truly wasn't a big deal to you what the word means, then you wouldn't be opposed to the change.
if you are opposed to the change, there isn't any logical reason to be. you're upset because now you've been forced to associate this word with its historically racist meaning, something that all developers of color have been forced to see from the beginning of their careers in tech.
to add to the point that the writer of this article is trying to get across to everyone: if you care to die on this hill, you definitely deserve to.
I love this 🙏❤️ Very well put.
This is the only comment here that matters. Well put.
Its just bollocks
people are offended with everything, and changing one term will not change anything.
fight for racial justice and equality should be fought on totaly different levels with laws, rules, courts and with knowledge.
People have been hurt by the terms we use for a lot of things for far longer than you've been aware of. That's the core issue here; there are people out there that have felt this for their entire lives.
Changing one term might not change anything, but being in software development you are probably aware that incremental improvements to a system accumulate in a large scale change of the system.
👏👏👏
I’m opposed to the change for the following reasons:
By themselves, these reasons aren’t enough. If master in Git was based on a slavery metaphor, then I’d have no issue making an effort to update my repos. But it isn’t, so why bother breaking and fragmenting an ecosystem over it?
Some other things that could be offensive:
As for those complaining that it’s political correctness gone too far, they should grow up. Sometimes you have to tweak your language to live peacefully with the people around you. I just don’t see this is as one of those cases.
Exactly -- I have over 200 repos. I'm not about to go update them all.
Changing the default branch from master breaks a bunch of tools, most especially the ones which bridge git with other vcs systems (hg, perforce, svn, etc).
Does anyone have a problem with a "master copy of a record"? Does this mean that "becoming a master of your craft" is oppressive?
git's source implies the "master record" analogy for the master branch; in addition, there are two places where I could find the word "slave", both tests:
I brought this up at work, in an open environment. The PoC that I work with don't object to the term. All recognise the giant PITA this is going to become, via knock-on effect.
Meanwhile, whilst we churn with such trivialities, the people who actually killed PoC when their mandate was to protect and serve, go about their business -- most still in the same positions of power. GitHub continues to service ICE. Futile gesture much?
On the other hand, I don't want anyone to feel oppressed or sad at work. If this really means so much to so many, fine, let's change it. I've only seen a handful of people originally upset about it tho and much instigation after the fact :/
What's also really interesting, imo, is that the most vocal people about this have been !PoC (that I've seen). See above: "Futile gesture much?"
And again, I say: I could be well wrong -- I can't possibly know how all people feel -- so if this really means that much, cool, let's do it. Until someone decides that
mainisn't offensive for some other reason.I would think if they were good at what they do you wouldn't have to worry about that.
I assume you're referring to the tools?
If so, here's some more info:
Git can be used to bridge to other VCS backends. In other words, I can run git locally and get it to sync up to an SVN server. On SVN, the convention is that
trunkis the "main" branch, where on git, that's always beenmaster. In both cases. there's no trivial way to "ask" what the "main" branch is -- GitHub's setting, for example, pertains to how others raise pull requests against your repo, not how git sees things.This may sound silly (why bridge?), so I'll recount when I had to use git as a bridge:
I was doing work for a client who used TFS as their VCS. And not the "git-backed" TFS you may have heard of these days -- the older engine, which, like SVN, requires you to be able to connect to the server to commit. Which I couldn't always do. So in that case, I have two options: accumulate changes into one massive commit when I can finally connect and have (a) terrible history and (b) make it much harder to move incrementally forward (and, by extension, incrementally back, eg when experimenting on a new feature).
So, in this case, I would use the git-tfs bridge to run git locally (so I can use all of the distributed features and have small commits), and push to the TFS remote when I was able to connect (eg when I was on-site).
When tools which facilitate this kind of behavior break, that's bad for a lot of people involved.
Add to the conversation the fact that the author responsible for naming
masteras such has said that he intended it in the sense ofmaster copy(as I've been suggesting the intent appeared to be from the source) and we have a massive movement to rename something which will take time and effort, has knock-on effects and doesn't even address what it sets out to, let alone the really big problems that are out there.I still maintain: let's change the name if it makes a lot of people unhappy, but let's be honest about its origins and the fact that it's non-trivial to do so and will break systems which rely on established conventions.
Interesting. Thanks for telling me this. I've known a few people who've had to use both git and plastic (I have zero experience with plastic) for their work. Where git is either going to github/bitbucket or staying on their machine and plastic going to the server. It was a bit convoluted on their part but they had to for their sanity or policy (mostly for sanity).
The same reasons could also apply to the USB specification, which instead uses master-slave references since 1996 (USB 1.0 release). Forcing the USB-IF (USB Implementers Forum) to rename "master" and "slave" respectively for that specific reason will start a new level of debate, not just whether the rename is necessary, but also whether the entire USB specification should be cancelled as it promotes "slavery" to the devices.
So yes, enforcing political correctness to the technology today can break everything because of a change that is made for the sake of change (without considering interoperability).
This reminds me of the discussions about the LGBT+ colored response to git push on Bitbucket las year. At first I was like WTF is going on, what did I break!?
Then I googled it and was like "Ah... Ok... Cool", I spent no more than one minute on that search, plus like 10 minutes reading the reactions and a few more minutes talking about it with colleagues and laughing at the people that felt offended by it and that was it. No harm was done, we didn't have to update any of our tools, integrations or anything, and we spent time discussing the issues of the LGBT+ community and how close minded some people are about it. So objective fulfilled, nicely done Atlassian.
Few weeks ago I update my apps (I don't have auto-updates enabled) and see Reddit pushed an update just to change the icon to black, and I called my wife to show her the update message and we talked about it. Well done Reddit.
Now Github does this thing and I just feel it's like a cheap imitation of these. But whatever, I spent five minutes writing this, and that's it, moving on to the things that matter. If you, like me were privileged to be born in a family with the means to put you through a good college then go out there and help those who didn't get that advantage. That's how we build a better world.
Pretty cheap indeed.
In all of this, the only thing that i really don't like, is that every project that is removing the master/slave references, is using it's own new terms: primary/replica, primary/secondary, leader/follower...
The thing I've noticed, and in the long run it will probably be a good thing. Is that a change like this makes people think more clearly about what they are describing. Sure it's going to lead to splintering but hopefully it will also lead to an increase in specificity.
If changing the name of the default from master to main will make software development a bit more welcome to non-white developers then I'm all for it. A very small price to pay in my opinion.
"People" have been opposed to ANY change in this matter really. I remember when we tried to be more welcoming by not allowing sexism and harassment of female developers for example. That was also met with huge pushback by the use of "slippery slope" arguments and "no politics in my software development". Code of conducts were not necessary apparently even though they CLEARLY were.
I can see the argument for the slippery slope and "what if we go too far in the other direction". Even if that would be so I would still want to go there and then we can have discussions about scaling it back if necessary. Let's fix things together first!
I'm black, born of black and a proud haitian (which is the 1st black country) and to me this change is useless. What about we make true changes instead. This is a joke. And at the end of the day, selfish.
To quality the price as "small", you need to actually think of the downsides and also of the benefits. The latter aren't clear at all. On the contrary.
Clearly you've never dealt with IDE hard disk configuration. You can have two disks on one controller. One is designated "master" the other "slave".
This is the first link that comes to mind, and I'm certain there are others.
Here's another example, check the definition of the verb "slave".
That’s cherry-picking from the quote. It was about git specifically, not the usage of “master” across tech generally. Here’s the quote without the first sentence omitted:
That's fair. I misread what was said the first time.
I think the somewhat amusing thing here is that at most of the companies I've worked at we've used some form of GtiFlow (ugh) so
masteris really more of an archive than the main branch. In daily use thedevelopemntbranch is actually the main branch. Naming things is hard. Now I'm going to go invalidate some caches...Some comments may only be visible to logged-in visitors. Sign in to view all comments.