Cover image for 9 problems with replacing "master" in Git

9 problems with replacing "master" in Git

dandv profile image Dan Dascalescu ・5 min read

This post started as a comment reply to "Replacing master in git" but it turned into a longer topic. The line that sparked my reaction was this:

"Master/slave is an oppressive metaphor"

There so many problems with that statement. First off...

1. There's no "slave" in Git

Maybe MongoDB has this problem, but not git. So there's no "master/slave" metaphor in Git to speak of.

2. Words change meanings over time

"Master" is a term used the recording industry, or to talk about skill ("Master of Science", "Kung Fu Master" etc.). I'm not a native English speaker so "master" was strange to me too, but in American English "master" has been far more commonly used in the past 50 years to talk about vinyl records and CDs and degrees and expertise, than slavery. As someone else said,

These terms have existed for decades and now suddenly we feel they're racially loaded? I think this is a knee jerk reaction to a problem that doesn't exist.

3. Nothing is oppressive by itself

People choose meanings. Epictetus famously said this of insults (and "master" is far from an insult, but to illustrate the point):

“Remember, it is not enough to be insulted to be harmed, you must believe that you are being harmed. If someone succeeds in provoking you, realize that your mind is complicit in the provocation. It is not he who reviles you who insults you, but your opinion that these things are insulting."

4. Who does the word "master" in Git really offend?

The vast majority of developers have nothing to do with oppression, and have never intended to oppress anyone.

Has anyone ever complained of being offended when they saw a "master" branch in a Git repo? From what I've seen so far, black developers haven't felt offended by this word.

I think it's a good gesture. But it feels a bit awkward as a person of color to see such things when I've never felt that way as from the time I knew about computer science and to where I am now. This feeling though is influenced by many things, partly being that I'm from a different place where some terms aren't as heavy hitting in terms of my history and that I cannot speak for other people of color from other locations in the world.

Re-purposing has more impact than renaming, in my opinion. Changing a branch name from 'master' to 'default' carries less weight compared to github just not working with government institutions like Immigration and Customs Enforcement's ICE. Removing "blacklist/whitelist" in favour of something which is probably more harder to remember has less impact than not blocking open source accounts and repositories from locations like Iran.

Historical names do way less harm than the inhumane practices corporations do today. But that's just my opinion

Blacks don't give a damn

I totally agree with your points, I think these kind of changes are only making things worse than they were before, I never heard anyone who ever complained about this term.

I am a developer and I am black(not speaking for anyone else of color) yet I have never felt offended by a word I see in a software that I use or don't use, I think there are far much better things we can do as a community if we agree to live with our different cultures.

Thanks to Ben Calder for pointing out that some Drupal contributors felt offended by master/slave. That's different from master in the Git world.

If nobody is actually choosing to be offended by this word, then all we're doing is wasting time changing a perfectly working process just to virtue-signal that we're "woke", while annoying far more people in the process and wasting their time when "master" will no longer work and its replacement will break things.

5. What are the downsides of this rename?

When making a decision of this scale, we need to realize that it invalidates 15 years of scripts and build pipelines and CI processes and Git tutorials using the word "master". What is its ROI? That's a legitimate question. We think "master" may offend the sensibilities of some black developers, and OK, there might be some I haven't seen yet, but what about the actual pain inflicted on those who have to deal with the change? Broken builds, staying up al night fixing a P0 caused by the change, getting fired because you haven't exhaustively tested before deploying, downtime caused to customers who have no fault in this - these are real pains the change will cause, as any DevOps person will tell you.

6. Is this purely a PR move?

By being outspoken against "master", brands benefit from stoking the fires of racial conflict to elevate themselves in the eyes of consumers. Sony, an organization using cobalt mined by literal black slaves, including children, is in favor of BLM. GitHub renaming a branch seems like a cheap PR stunt by comparison, when they could do far more meaningful things, like not working with the ICE:

Github contact with the ICE

...or not banning Iranian developers, suggesting they use GitHub to develop nuclear weapons.

7. What shall we rename next?

Slaves were hanged from branches at some point, should the word "branch" be changed? How about the Lighthouse web speed auditing tool? Light is usually white... Going forward, we could realistically decide to rename "Master Degree"s.

I know this is a slippery slope. We've been on it! In 2015, the file extension ".bro" was deemed offensive was deemed offensive and had to be changed to .br. In various cultures (Australia, New Zealand), "bro" is a very positive term. But one irritated person was offended. The point of the slippery slope is, where will it stop? I bet whoever found "bro" offensive didn't stop at that.

Have we, by changing the extension, helped that person be more tolerant, inclusive, resilient, calm, or in any way better than before?

I wonder how that person reacted to this parody:

GitHub logo ErisBlastar / cplusequality

Feminist Software Foundation C+=, a new language for us feminists

FSF C-plus-Equality

A project of the Feminist Software Foundation. Feminist software is a cornerstone of any modern free society. We build this foundation.

Trigger Warning, this repository uses satire and sarcasm and other types of humor that could trigger Feminazis into rage fits. Maintainer of this repository was gone for a while due to being source code raped by feminists who lack a sense of humor. Which is ironic as this language was written for feminists by women. We are trying to help out women and feminists to have a programming language not controled by the capitalist patricarchy and men.

Now hosted on BitBucket, as GitHub proves to be too misogynistic to support a feminist programming language.


C+= (pronounced either C-plus-Equality, or See Equality) is a feminist programming language, created to smash the toxic Patriarchy that is inherent in and that permeates all current computer programming languages.

Anyway, odd fact about me: I actively dislike being called "bro". It's irrational, and I have no explanation for it. But I don't mind it when my Aussie friends call me "bro". They don't mean anything bad by that; on the contrary, "bro" is a term of fraternity, of endearment. Someone being offended by a file extension, which doesn't mean anything but short for the compression algorithm "Brotli", is quite puzzling to me.

A slippery slope is a fallacy when it's used to support an argument. Here, it's merely a fact. I'm not arguing we should not rename "master". Go right ahead, rename it. I'm just pointing out some problems with getting up in arms about it.

8. Don't we have better things to worry about?

Could the time collectively spent on this debate have been better spent in other ways? Or do we like the illusion of doing something useful? I think that arguing about how we think black people (should?) feel about a word takes attention away from real issues.

9. Is this humiliating to black developers?

Last, and worst, by removing the word "master" blindly, we're uncritically reproducing a narrative that diminishes black agency in favor of a white-centric explanation. We're making the assumption that a black developer can't take the word "master" as simply a label and nothing more. Don't you think black developers may find that assumption humiliating?

PS: I've looked at reactions to similar moves in the past. The founder of Ruby on Rails pontificated about renaming master back in August 2018. The reaction of the developer community was pretty much the same as mine.

Posted on by:

dandv profile

Dan Dascalescu


Immigrant entrepreneur in the Silicon Valley, former Googler and Yahoo!. Founded Blueseed, the startup community on a ship, and a few tech startup. Running the Quantified Self Forum.


markdown guide

I agree completely with your 5th point. Updating all our legacy setups would be pain to say the least, and it shouldn't be necessary. So luckily, it isn't. Nobody in the BLM movement is asking you to go back and change history. The question is, once we know something is perhaps not 100% okay, should we be considerate and use a different term going forward when setting up new projects and repositories? To which the answer is simply that yes, we should. We can still use master in existing repos, while acknowledging that this is a legacy term from a time when we didn't know any better. Just like we're not going to banish the works by Lovecraft or Tolkien, but we can acknowledge today that they were written in a different time and a different context where racism was more widely accepted and prevalent.

One of the reasons this discussion is so high-profile right now in the developer community is not at all that it's critically important to change "master". It really isn't, it's silly and insignificant at best and there are so many other more important issues to focus on today. But vehemently defending something that people have flagged as problematic because "you didn't intend it that way" instead of acknowledging that you can do better, is not really accepting of other people's viewpoints and experiences.

This stance can also actively work towards silencing people (especially POC) who do speak up. And this goes much further than one silly version control term that barely anybody actually cares about.

Regarding your first couple of points, you are correct that "master" in the context of Git wasn't meant to be racist. It also wasn't meant to be anything significant, it was a quick decision made long ago by someone who now themselves feel that it should be changed. So arguing we should keep it because of historic context and "it's always been this way" doesn't really hold much ground either. Not to mention the fact that other version control systems use "trunk" or "main" so there are other alternatives out there that are just as valid, that don't invite this kind of inflammatory discourse.

I also want to note that your 7th point is a slippery slope fallacy bordering on reductio ad absurdum, an argument designed to evoke an emotional reaction against something completely ridiculous that nobody is actually saying, and doesn't hold any ground.

Your 8th point is absolutely valid, but it's not an or situation. It's a yes and, where we can simply change the wording to make our language more inclusive, and then continue to worry about and work on all the other issues.

Lastly, your 9th point shows some confirmation bias and even more so selection bias, considering the racial discrepancy in our developer communities (recruitinginnovation.com/blog/dive...) and the by now fairly well-documented trend of minorities not speaking up as much or simply being drowned out by the dominant (white-centric) discource (thecut.com/2017/03/the-spiral-of-s...).

So in conclusion: yes, changing master to main is silly. It's not a significant change for anyone (regardless of which side of BLM/racism they're on), and it's probably mostly a PR stunt by companies wanting to pat themselves on the back. And yes, we should still acknowledge it and change our terminology going forward, simply because continuing the discussion against it is pointless and actively helps to reinforce the implicit bias and inherent racism that's so entrenched in our culture, including in this case specifically the harmful stance that we don't need to listen to POC who speak up and that their claims and demands are "ridiculous". Because they're not, and we should collectively check our bias.


Thanks for pointing out that my list of slippery slope instance could be interpreted as an argument that we shouldn't rename "master". I've updated the post to hopefully clarify that.

I did search for evidence that black developers were offended by the word "master" in Git, but haven't found any so far. (Admittedly, I don't know a lot of black developers and I don't pretend to be their voice either or speak for them either). Happy to include evidence to the contrary if presented.

But let's say we did uncover a few who were offended by the term "master" used within git (and not trolling about it). Would that justify inflicting confusion and unnecessary effort on clearly many more developers, making some black developers directly uncomfortable, and ultimately being US-supremacist? I didn't see much pondering of this trolley problem; rather, knee-jerk initiatives and reactions.


Thank you for updating your post. Point 7 reads a little more nuanced now, although I still believe it's a slippery slope.

Interesting about the .bro extension story, I hadn't heard about that! I haven't really read up on the impact of 'bro culture' (although I've heard that it can be toxic in some situations) so I don't know how valid the complaint was/is. But in general, my stance is that if someone takes issue with something (assuming it's at least somewhat tangentially valid), and it doesn't really mean anything to the other side, then why wouldn't we make our language more inclusive.

Here's a Twitter thread I came across earlier today asking black developers just that question. It turns out many of them are in favour, for various reasons (some of which I touched on in my reply). Very informative, I learned a lot from reading through the replies and subsequent discussions.

Regarding your linked arguments, the author of the first tweet you quoted immediately followed it up with "The people quoting this as an argument against the change are very clearly racist though." which is direct and maybe a little harsh, but it does drive his point home - people pushing back against this change are showing their inherent bias because there shouldn't be a logical argument that is stronger than "make our language more inclusive and less racist" unless they're actually racist and opposed to inclusivity. Even if we're just talking about something as silly and insignificant as the default name of a Git branch.

Regarding the US-supremacist argument, that's simply not true. European countries have just as much of a racism problem. There are BLM marches and protests in several major European cities, with for instance London experiencing white supremacist violence similar to what I've seen from the US.

It may not be as bad in Europe as in the US, because most European countries don't have an openly racist leader who actively incites and encourages violence against minorities, but all western countries have their own problems with race and discrimination. I live in Belgium and the same things do happen here - we also have white supremacist organisations that get in the news from time to time for attacking or killing POC, we have news stories about police killing innocent black people, and nationalist political parties lobbying for things like deporting non-white people and more use of force by police (wikipedia does not do the tone and impact of their propaganda justice but their own material is only in Dutch). I also know at least one coworker who recently argued that "negro" should still be an acceptable term because they "don't mean it pejoratively, it's just a word" - and that's very anecdotal but it shows that people like this do exist everywhere. Of course I can't directly speak to the general climate in other countries but racism is definitely not a US-only thing.


Are you sure you are not committing the straw man fallacy? Your arguments doesn't counter his; and you are making conclusion not really based on anything discussed.


That's because I generally agree with most of his points (apart from 7 and 8 specifically which I did directly address), but I disagree with the implied conclusion that these points are valid reasons why we shouldn't change our terminology going forward.

Even if that's the case, I am saying that your arguments aren't conclusive either.

Saying that we should change even just to avoid this particular mess is exactly what makes the slippery slope a valid argument. What is next mess that need to be politically correct? Do we engineers now have to design/build/name things with the fear that 30 years later somebody would dig back our mail thread to determine if we were correct or not?

Besides, it was never mentioned that we should silence anyone. In fact, all of us should speak our mind. But do we have a choice in this? No. We (including non-US and non-English speakers) have to accept this. And every voice against it means the speaker is a racist? And you say that we should just silently accept it for the sake of not reinforcing some "implicit bias" about race?

No one is arguing that we need to vilify people who made decisions 30 years ago. This isn't a matter of "those people were wrong" because at the time, they weren't. Different time have different standards and it would be ridiculous to suggest that someone who lived X years ago should have behaved according to today's standards.

People are simply asking for everyone to start being more respectful and inclusive in the language we use, which to be seems fairly cut-and-dry. We're talking about a word that means something negative to one side, and that is "just a word" to the other side, so why would we not all agree to start using a term that's "just a word" to all sides, out of respect for everyone?

Let's take out the slippery slope argument for a second. Let's say this is literally the only change you ever have to make and then everyone is happy. Would you change it then? And if yes, then why is it so much more difficult to do while also acknowledging that there may be more work needed in the future to make our language and society inclusive, equal and just for everyone?

Sloan, the sloth mascot Comment marked as low quality/non-constructive by the community View code of conduct

And no one is arguing that we should not be respectful to anyone, black or white or yellow or whatever. Intentions are almost never bad. But it is always the action stemming from those intentions that is the problem.

How can you say that the name change is "more respectful and inclusive in the language we use" while at the same time, refuting that it is not significant at all for anyone? If you say that it should not matter to me to accept it, why does it matter to you that I have to accept it? You are free to name your branches however you like, for whatever agenda you pursuit. I like to name my branch master because it's the first thing I learned about Git. Do I not deserve that respect?

I'd also like to say that I am Asian, living in Asia. Not that my race matter, I am merely providing a context as to how I feel regarding all this US-central bullshit. Some black man died half the world away - a sad matter, yet now I have to be all respectful and inclusive and need to have all this SJ forced down my throat. Would you be happy if you were me?

Finally, I never argued that we are living in a perfect world. But accepting halfhearted political PR stunt is - in my opinion - doing more harm than good. I draw the line at policing my language to express myself or my work. This change maybe small and insignificant to you, but the frog got boiled alive.

Perhaps strongly worded, but this is a valid point I also linked to: developers far away who are not and have never been involved in this US/UK/Germany racial/slavery debate, have to suffer its consequences.

There's one more thing in it. People blindly imply that all other world should care about US internal problems. There are lots of countries that just don't have these racial problems US has.

And for some reason we (non-US people) should also be affected. I have personally seen people forcing this change for projects made by Bulgarian, Russian, Kirgiz, and Indonesian people. It just makes no sense!

I'm not sure why @hung 's post was marked "low quality". I think collateral damage is an important point.

Could be my wording that is the problem and I apologise if that's the case. Although the CoC also seems to draw a very fine line regarding acceptable stance in matter like this.

Nevertheless, it is great to see you including our voices in yours as well. Non-US/non-English speaking engineers seem to be drowned in this debate for no good reason.


Point 5 hit it hard for me. Imagine working for 5 years just to get people comfortable with using Git and all its convention then BAM! All that down the drain because some PR ass* wanted to cash in on the bandwagon.

And it wasn't even a thing here where I live, in Asia. We don't have that big of a race issue (hands full with nationalism I suppose) - yet now I have to deal with fallout of an event happening half the world away.

And it's not even relevant. Software development is the one field I feel to be immune from all the SJ madness that has been going on. Nobody cares who you are, just that the code works. But no, people have to write those pretentious article about BLM in software, and tech corporation have to chime in on racial equality. We brought this on ourself.

It's funny when I was among those who think it's fine that Microsoft acquired GitHub.


Whilst I agree with some points here I think it's fair to add some balance. Regarding your points: 2 and 3 see this excellent comment on the Drupal issue to make the change away from master/slave terminology... in 2014.
Whilst some black devs may disagree (as is their right) there's no question that for some 'master/slave' in combination is an issue and I think that's fair enough.

People choose meanings

Yes - and historically Europeans have deliberately assigned negative connotations to words associated with blackness; and incidentally 'leftness' - since left-handed people are also apparently outside the 'norm'. My point being: this didn't happen by accident. People also deliberately use words as weapons in order to oppress and belittle; to the point that the original signifier for something can become offensive (e.g. spastic). I'd argue that invalidates point 2.

But I do agree that point 1 and 8 could apply in this context. No-one seems to be arguing that in isolation 'master' is problematic but, because someone dug through some old messages and apparently discovered that the original engineers did have 'master/slave' in mind when they decided on the the naming, the use of 'master' in the context of Git is now a problem... That feels like quite a stretch.

But that's not for me to decide. Did anyone go to the Black community and ask if they had a problem with 'master' in the context of Git? So far I've seen little evidence of that. Just lots of white people congratulating each other 🤷


Thanks for pointing out the Drupal thread, I've added that to the post.

Godwin's law, but I wonder if having an issue with a term that had one negative connotation 150 years ago seems, isn't about as smart as having an issue now with Germans in general because of what some of them did 80 years ago.


Dismissing 'master/slave' as something historical doesn't stand up to scrutiny though: legally imposed racial segregation was fairly recent history - even in the UK and US. These laws were intended to limit the prosperity and power of freed slaves and their descendants. It seems pretty clear to me that - one way or another - we have been restricting the freedom of these people ever since.

The German comparison is therefore nonsense: Germans are very well aware of their history and - in general - actively engaged in remedying their past mistakes. Whilst the UK and the US continue to perpetuate the myth that they're the good guys whilst being institutionally racist.


Just make sure you don't get canceled for this post.

And while people are virtue signaling like there's no tomorrow, Boko Haram is killing off black people in Nigeria: pulse.ng/news/local/how-boko-haram...

But hey, changing words in code lines is more important.


Great points.

Also: slavery has nothing to do with color.

Romans didn't care about the skin color of their slaves. They used other romans, greeks, germans etc..
Black people enslave black people today in Africa
Japan took Chinese slaves by the millions
White people were enslaved by the Moslem occupation of Europe

Implying the term "master" is racial is narcissistic at best, stupidity at worst.


Even to this day, slavery or serfdom still exists, and there isn't even always a racial boundary between the owner and the owned. Human slavery is bad, but it's important to remember the important qualifier there: human.


Thank you.

It really does feel like a cheap PR stunt. I think a lot of companies believe that making everything squeaky clean and removing offensive terms is helping, but in reality, as those posts you linked to said, what it really does is make black developers feel like white people are deciding what is and isn't offensive for them.

It kind of sucks, that while Github is trying to be inclusive, they're actually making some of their users feel more uncomfortable, because they're making changes that they really don't need to.


Good questions, and thank you for asking them. Unfortunately most of these companies are self-flagellating for relevance. Expanding on #5, can you imagine the molten clucking storm if master actually gets renamed? Haha we've all got teammates that are writing code from 20yrs ago... Today.... Can you imagine the complete mess that would be?


Thanks for the article - it's really well written and fair - definitely book-marking it for the next time this debate comes up. All of your reasons, except the first one, also hold in other tech uses of the word, like master/slave replication (almost any database). I especially liked point 4 - brings to mind an incident where a girl in the states caused a scandal by wearing a kimono to her prom. Of course, this was awful cultural appropriation but Asians interviewed on the topic mostly found it flattering - "we're glad she likes it" - with the loudest voices being those whose culture was not even close to being appropriated. I wonder if the male/female plugs in my house are next on the hit list...


Not that it should matter greatly for the reasons that you say, but for #2, I went looking a bit further into the etymology to confirm this. From a quick look on etymonline reveals its earliest uses in old english, master was used to represent a chief or leader, then from 12th century as someone proficient in a skill. A bit more of a sense of people ownership develops in the 14th century, but in the 17th century it gained its association with slavery. As you say, we use it much more in skills mastering and the recording industry use these days (we have plenty of other terms for people ownership, like manager, boss, CEO!!). I think it has gained a new meaning as representing the origin or single source of truth, but I can't find any free etymology describing the origins of this use.

If, as you say, this is some kind of knee-jerk reaction white people thought up to sate the black lives matter movement, then it shows we simply aren't listening, which is the bigger problem to tackle. I'm glad you researched the views of black developers, that does count!


Best reply! No doubt that the action against GF was way too much. But wth... all these discussions about words... so many more words that have absolutely no political meaning that could be turned into having political meaning. Is #000000 the new term for black? And don't forget #ff0000 and #ffff00 for red and yellow!

Please... don't... Keep the discussion clean and focus on what's really important. People, not words...


If nobody is actually choosing to be offended by this word, then all we're doing is wasting time changing a perfectly working process just to virtue-signal that we're "woke", while annoying far more people in the process and wasting their time when "master" will no longer work and its replacement will break things.

Amen. This virtue signaling is especially annoying because it will force everyone to waste their time (money) on their vision of perfect world without opression problems.
Of course convenietly forgetting how many people are killed everyday for being born a girl, believing different faith, having different sexuality, etc. Lets change some letters in Git, that will help! Also, tweet of outrage is in place when talking about it to make the arguments even more appealing.


My first thought on this was that pipelines everywhere are going to fail. Especially if it's rolled out wholesale to every repository out there. I was then concerned that all they would do would be give master another name, and create an alias so master would still work for people, in which case it is just lip service and will come back to bite GitHub massively.

I want the development community to be inclusive, and I want those involved to feel comfort for the long term. It does concern me that more people are going to be offended by this, but I think that no matter what happens, some people will look for offence in any action or inaction.

Having seen more happen about this in the last day or so, I've come to believe the GitHub are rushing this to cash in more as fast as possible. Over at GitLab, there's a more careful and considered approach being considered, in letting people choose the name of the default branch. Yes, that may cause confusion as different projects and organisations may have different names for their primary/main/default/former-master branch, but when you get into working with git, that confusion will go.

GitHub forcing the change ultimately makes them oppressive and forceful. GitLab are being collaborative and inclusive by giving the choice at project creation. There may well be more truth in your "PR stunt" point than it first seems.


GitHub forcing the change ultimately makes them oppressive and forceful.

Good point. Funny how good intentions can backfire.


I honestly think this is the most stupid idea i've ever heard, i do not plan to change names just becuase some white dudes want to feel woke, if you want to change your terminology go ahead but do not judge people based on that also i would like to know if github is going to enforce this in our repos becuase i do not want to be fixing P0 issues just becuase we have to be PC complaint now


There's one more thing in it. People blindly imply that all other world should care about US internal problems. There are lots of countries that just don't have these racial problems US has.

And for some reason we (non-US people) should also be affected. I have personally seen people forcing this change for projects made by Bulgarian, Russian, Kirgiz, and Indonesian people. It just makes no sense!


This! In South Africa, people are boycotting Uber Eats because they think the black-owned business fee waiver is applicable locally too. While I myself don't really care whether businesses pay fees or not, I do feel that it is nice of Uber to support the US BLM movement and help businesses out. Locally, with reverse racism pretty much being the law though...


Yes ... I wholly support BLM but the idea to replace "master" feels like the most overblown and exaggerated thing ever.


Don't we have better things to worry about?

It strikes me that the only reason we're spending time on this is because people like yourself are arguing about it. You will never convince me that the amount of time spent fixing our oh-so-fragile build pipelines would be greater than the amount of time you spent writing this post. You seem to be advocating choosing your battles, yet somehow find this to be a worthwhile battle to engage in yourself.


Maybe not refer to this as "problems" when they aren't real problems

Also this might be in violation of the coc for dev.to: "Using welcoming and inclusive language" which you are arguing against.

I see no technical drawbacks for this change. Also that person who said they had just taught someone using git; if a label change is too much maybe you shouldn't teach


In response to point 9, specifically the tweet you quoted:

And the following exchange between two black developers, including the one you quoted:


The fifth point is the only one that strikes me as a problem with replacing "master" in git. The rest appear to be just why you think we don't need to. That's a separate question.


Well I consider myself a master and if they remove the word,

I'll be offended :(


Haha, good one! Some people do insist on putting "PhD" or "MSc CS" after their name, so imagine the outrage of the latter :)