Hacker News new | past | comments | ask | show | jobs | submit login
GitHub is working on renaming default branch from “master” (twitter.com/natfriedman)
169 points by dacohenii on June 12, 2020 | hide | past | favorite | 243 comments

I'm a strong supporter of social justice. I don't really object to people putting in work to change language like that if they think it's important. Especially when the work required is minimal.

That said, this is slightly ridiculous. Have customers seriously complained about the term "master"? And my impression was that the usage was more similar to "master copy" than "master of the plantation".

Honestly, it's frustrating to me that companies are willing to take token actions like this that are almost completely irrelevant in the scheme of things but unwilling to lose profit by, for example, not contracting with ICE. Actions like this feels like veiled advertising, even when, as I'm sure is true in this case, there are genuine motives behind them. It seems like the structure of corporations allows only the genuine intentions that require little sacrifice to be acted upon.

It's a stupid subject to have a flame war over, but I don't understand the logic at all.

I am right there with you. The whole idea of "master" is not really based on the idea of slavery focused master.

Master represents the final version of a component or software which ends up in production. It is the same meaning as an audio master (https://en.wikipedia.org/wiki/Mastering_(audio))

If the word master is considered evil, then what would happen to a Master Degree ? or Dojo Master ? Words have different meanings in different context, let's focus on changing language that changes the way you think.

This is the danger of simply declaring a word "bad". You get all sorts of edge cases like this. This is like an automotive web site trying to prevent people from talking about retarding your ignition timing to prevent detonation. Sometimes words simply mean different things in different contexts.

This is not even an edge case. At this point in history, the slavery-related meaning is the edge case.

Looking forward to the 'mega-debtor' degree tier.

How dare you. People in debt should not be discriminated against you insensitive clod!

Platinum degree is a far more neutral term! Wait... No, my PC adviser has just informed me it is unethical to discriminate on the inherent values of precious metal...

Are you...

Excuse me, I did not mean to discriminate as to suggest there is a tier of metals of a higher desirability or intrinsic value than any of the other metals. All metals should be valued for what they are, and our language with regard to degrees should reflect that.

Therefore, the formerly oppressive Master's degree shall henceforth be known as the Bachelor's+1 and some research degree...


No, I'm sorry. I've just been informed that due to the Bachelor's degreebeing based on a 12th century term, Knight bachelor, which implied a knight too poor or lowly to gather men...er... People! People under their own banner banner... We'll have to go with the Second Degree and Third Degree's respectively... Oh God, burn victims now? Gods above, wait, monotheists? I mean God... Wait... Then the polytheists, deists, and atheists.... Uhhhhh...

The Orwellian linguistic engineering rabbit hole is a deep and terrifying place it behooves no one to muck with. One can keep the line of those insulted going all day.

I however, have work to get back to doing.

This joke ends with "comrade".

joking what about master of puppets?

>And my impression was that the usage was more similar to "master copy" than "master of the plantation".

Evidently, this is a relic from bitkeeper which uses the "master/slave" terminology.



I was somewhat aware of Bitkeeper, but crucially,

1. There are no slave branches.

2. "My impression" was my impression as someone new to git. I'm extrapolating other people, but I think it's fair to say that many (most?) people won't make the connection to chattel slavery.

3. Git is not directly modelled off Bitkeeper.

But like I said, I don't object to people changing the name, but more to people thinking changing the name is important.

No this is not a relic from bitkeeper. Why dont you ask the dev responsible instead of some random on a mailing list stringing assumptions to fit a narrative.


> That said, this is slightly ridiculous.

Which makes it actively harmful: Anything you do which is even somewhat ridiculous can be seized upon by your political enemies and turned into ammunition against you. They can claim your whole movement is about the ridiculous thing, and use it to derail discussions: "Yes, yes, that point is good, but did you know they renamed something in a piece of software just because it vaguely reminded someone of slavery? Time to talk about that now!"

Remember that we're talking about Microsoft here. We don't need to give them the benefit of the doubt. They've already shown by the actions over and over and over what kind of corporation they are.

They’re surely notorious for their past business practices like EEE, but I don’t recall them actively trying to stir up racial conflict.

I agree with you. The thing is that GitHub has EXPLICITLY stated that they will not break their operations with ICE. So they are doing "good press" work rather than doing actual support of BLM.

It is when corporations have embraced and monetized counterculture. As if they are part of us but if analyzed by psychologists corporation was an individual was denoted a psychopath, that is why motions like this make me cringe and die a little on inside a little.

I feel the same way, and it’s depressing that people have to risk their reputation over this. If this was about people waving confederate flags or holding Nazi banners, we should do our best to keep those people out because these are symbols of ill intent used to send a clear message of hate towards minorities. But I have never seen people use the noun “master” as a symbol to spread hate. Moreover, I don’t think many people have even thought of slavery when referring to “master” in CS context before it was brought up in this manner.

But all this aside, this would’ve been a no-brainer if renaming the default branch didn’t have other real-world consequences. If it has a possible chance of making people happy, we should by all means do so. However, the proposed change is inevitably going to break many scripts out there that manipulate git repositories and forces additional work for countless people all over the industry. At this point, I think it’s reasonable to rethink whether this is actually going to improve the lives of anyone at all before proceeding.

"Moreover, I don’t think many people have even thought of slavery when referring to “master” in CS context before it was brought up in this manner."

That's probably true, and it's probably people who didn't have grandparents that were slaves. It's closer in mind to some more than others. And if we want to have CS be more open to the black community, then being sensitive to how words can turn people off is important.

Banning the use of a common noun is distractive and inflammatory while doing nothing at all to address the real issues. What are we going to do when the whole software industry is done wasting countless man-hours of work renaming git branches? Ban the use of the word "order" because that too might remind someone of slavery? This is just an endless rabbit hole that leads us nowhere. Why not we just address racial inequality directly?

>That said, this is slightly ridiculous. Have customers seriously complained about the term "master"? And my impression was that the usage was more similar to "master copy" than "master of the plantation".

We have solved poverty, work ethics problems in IT, we have great working culture, great salaries, we put demands and employers just throw money and resources at us. We run out of real problems to solve, so as humans - problem solving and pattern matching machines - we found another problem to solve.

Exactly. Is MC Hammer going to change his name too? I don't think so.

EDIT: in case anyone's confused: MC = Master of Ceremonies

I don't think it's because people are offended at the use of the word master, in this case. I think, that it's symbolic. By making a point of getting rid of the word master, you're showing that black lives matter.

Are we going to get rid of every word that a plantation owner ever used to insult the slaves? For words that specifically have no purpose other than conveying hate, I can understand stamping them out. But master has quite a few other meanings, most of which I would think existed before institutionalized slavery of black people existed. Seems a bit unproductive to target it. They had supervisors - should we stop using the word supervisor? What about boss? Or plantation? Could not the entire BDSM culture be considered in the same way, with its themes of bondage and servitude? Somehow I doubt that every time a sub asks a dom to crack a whip over their head they are celebrating slavery. How close does a word have to be to an issue relative to its other usages in order to be considered a symbol of that issue above all else?

I don't think "Let's reframe problematic work language in terms of kink-culture" is the slam-dunk rhetorical move you think it is.

It wasn't intended to be. It's an actual question - where does the cutoff point lie for something standing on its own vs it being considered a problematic and irredeemable symbol of an atrocity and how do we define it? How do we differentiate between when someone is an asshole or not?

I came across an example of this the other day after seeing the word used in a historical text for a class [0,1]. I was fairly certain it did not mean what it sounded like it meant so I looked into it. While the word does not have a definition associated with slavery (that I know of) and is thus arguably further away from the issue than the word master, its phonetics are enough for its usage to result in condemnation.

Lives can be ruined, either from an accusation over a misunderstanding or a failure to recognize actual harmful intent. Vagueness creates friction. To solve a problem there needs be a thorough and precise understanding, and when it involves multiple people there also needs to be a sufficiently common definition.

[0]: http://www.americanyawp.com/reader/16-capital-and-labor/will...

[1]: https://www.wikiwand.com/en/Controversies_about_the_word_nig...

They are hardly related. Will you be removing my master's degree next?

Oh that's the same thing. That indicates mastery over the material you studied. Knowledge has become subservient to you.

What about the master copy of a recording? That's what git's master is anyways.

I completely agree. My prior comment was a joke.

Depeche Mode - Master and Servant is next

What about all other races that are discriminated against or people that are bullied? Do those matter?

Please don't bring up tired tropes like that one here. It's never going to change, so we're only going to get a tedious flamewar out of it, which indeed you've been perpetuating downthread—which, please don't.

It's not as if we lack for new things to discuss and argue about.


The terminology of master/slave architecture is a direct reference to the working relationships between people on an antebellum plantation. Names should help you understand what things do, and those names do. We also have node that elect leaders, nodes that get fenced, nodes with parents and children, etc...

The terminology of our software architecture, and of our software in general, mirrors that of the real world relationships that they model, reference, or are inspired by. That's a good thing. It helps us understand these systems. It's also true that if this terminology references something we don't like in the real world, we're free to change it. After all, master/slave architecture isn't a perfect modeling of a plantation, it's substantially abstract from that. There are many other relationships in the real world which could be used to describe this architecture.

Terminology is effective when it's stable, so we should be conservative about changing it, but that doesn't mean we should never change it.

Master in git doesn’t (as far as I understand) refer to master/slave architecture though. It’s a “master” as in as in the version from which copies are derived.

As a black person, speaking just for myself, I really do not get the issue around semantics like this. The word "Master" is not synonymous with any race and so does not make me (or anyone I know) uncomfortable. The concept of masters (and slaves) exist and are useful metaphors for naming similar phenomenon. I would much rather focus on issues that make people truly less comfortable in technology, like hiring or sponsoring practices in organizations. If there truly are (black) people offended by this nomenclature, I would not oppose changing it but I honestly don't know any.

Agreed. It's just white people trying to feel good about themselves. I know many POCs and black people who have bigger concerns -- not getting killed by police, equal pay, etc. -- than the name of a damn git branch.

This, I agree with. However, I still see a value in relinquishing problematic language early and often.

"master" isn't problematic, though.

If it's not problematic, then why would GitHub put in the time to make this change? In your worldview, it might not be problematic, but for others it is.

Because they are paid to support agenda. It is so obvious can't even get how many devs can't see.

Banning words is the real threat to everyones freedom, not just blacks Shame on every supporter: good intention, maximum naivety, horrible execution.

It just seems like an ultimately meaningless gesture. Is erasing the word "master" from the English language going to actually help anyone? What's next - is the lock company Master Lock going to have to change their company name?

After watching a lot of Lock Picking Lawyer episodes, I’d propose the word they need to change is “Lock”.

Same, but also Bosnian Bill. Here's him opening a master lock with a plastic sheet as a pick: https://www.youtube.com/watch?v=ayQIm3Lo6ZM or a zip tie https://www.youtube.com/watch?v=BIq9khF-axs&list=PLTSWkYxuSl... (he has an entire list of these ridiculously easy picks).

What about a small company called Mastercard?

Ownercard coming soon

Agreed. I think if anything this a the Streisand effect too, in that, most people didn't think slavery when they read the word 'master' in the context of branches.

Now this is all people will think about and if they change the word to 'main' it will get memed and ridiculed and mocked to oblivion because of the huge inconvenience it will cause.

It will have so many unintended consequences.

It solves nothing honestly.

Superficial changes like this are easy, actually changing hiring is harder. One thinks this is being done to quell demands for actual substantive change.

I've always seen it as 'final mix', 'mastered tape', didn't even occur to me before this it could be backpropagated to BLM.

Gonna be a little bold here and say that even if there are people offended by this nomenclature, probably it still shouldn't change.

No problem that can be fixed by changing the default name of the branch created by git init will, in so doing, meaningfully soothe any sincere moral wound.

I find it ironic considering the name 'git' could be offensive by itself... I know the term and origin are not meant that way, but I've heard it as a slur on more than one occasion for dim/stupid/retarted etc.

I'm not suggesting they rename the tool or the github site, but I find it funny how sensitive github mgt can be when their entire name is somewhat offensive.

This is just so damn pointless. It will cause some "great" controversy, people will be called white supremacists for refusing to stop saying master.

Now even if this catches on, then yeah OK I'll start naming my branches as main unless I want to make a political statement, which would just add to confusion when developing.

Meanwhile these people will pat each other on the back, yell "yeah! We sure made a difference." while black people keep getting fucked by the system and their lives don't get improved one iota.

just... why?

> just... why?

It's called "virtue signalling," I'm told.

I prefer Newspeak

I love how this is making everyone mad at progressives. Not one progressive asked for this and not one progressive is going to call people white supremacists for using the word "master".

Let's call a spade a spade and recognize that this was a big company trying to sound "woke" without doing anything.

> Not one progressive asked for this

Is the SJW crowd not progressive? Are they not "real progressives"?

A lot of oughties progressives fail to realize that they won the lions share of the first phase of the culture war going into the early teens. At that point, they stopped being progressive, and instead became the status quo (not necessarily conservative, but relativistically more adjacent to conservatism now).

Because they can't see this, they're loath to let go of the label in spite of the fact that they're now 'just' liberals.

Left-aligned culture warriors (sjws) are far more deserving of the label 'progressive', and generally the target of teeth gnashing about progressives. This is often taken as a personal, and non-sequiturial affront by those previous recipients of the label.

Im so confused by these labels. I did the political compass thing and fell hard in the bottom left quadrant of left leaning libertarian.

Doesnt that mean i should align with these sjw types? Personally i find them detestful.

To level things up even more, while the phrase “spade a spade” doesn’t appear to have anything to do with race, “spade” is used as a slur for black people too!

Stop with the wrongthinking, you may be reported to your employer

Using the term master doesn't bother me - in my opinion the idea of the master/slave dynamic is much less problematic when you're talking in the context of bits and bytes flicking up and down on some silicon. Having said that, if it bothers people, change it. I do suspect to a certain extent though that people are more interested in changing it because they're worried it might be offensive to other people than actually finding it offensive themselves.

The follow up tweet from the original reqeustor is:

> 1. “Main” is shorter! Yay brevity!

> 2. It’s even easier to remember, tbh

> 3. If it makes any of my teammates feel an ounce more comfortable, let’s do it!

> 4. If it prevents even a single black person from feeling more isolated in the tech community, feels like a no brainer to me!

1 - Not sure that's an important reason, why not change it to just "M"?

2 - Not for people who are already using git and have lived their entire lives on master (or for those more considerate developers, have lived their entire lives PRing into master)

3 & 4 - This is what I'm talking about, is there anyone who is actually feeling isolated and uncomfortable, or are there just a load of white people who have focused on literally the most unimportant aspect of being a black person in the tech community?

> This is what I'm talking about, is there anyone who is actually feeling isolated and uncomfortable, or are there just a load of white people who have focused on literally the most unimportant aspect of being a black person in the tech community?

I'm a POC in the tech community and couldn't care less about "master" being problematic. The tweets you quoted likely came from a white person who thinks a little to highly of themselves and want to go after low-hanging fruit.

Want to make a difference for POCs and Black people? Vote the racists and profit-driven politicians out of office this November and replace them with people who are more qualified to lead and actually care about the public.

> ...people who are more qualified to lead and actually care about the public.

They're still politicians, right?

Anyone running for office is a politician. How they use their power is what sets them apart.

As a mysql DBA, this terminology issue made me uncomfortable for most of the past 15 years. I'm uncertain whether I agree that it's relevant in GitHub terms since we don't have upstream/master -> fork/slave, but it's inspired me to think about the term "master" in the mysql, git, and art proofing spaces simultaneously, so I'm glad they're making the change and I look forward to finding out what I think about it after some time has passed.

Databases have been slowly shifting to other terms for a while now. I.e. consensus algorithms typically speak about "leader election", replication systems use "primary"/"replica", ...

I totally agree with 1. If the shorter word is just as clear, it is better. "M" is not clear but "main" is.

And in fact, at work, we use both git and mercurial, and they have slightly different terminologies. In particular, git's "master" is mercurial's "default". The result is that we are sometimes mixing the two. And we naturally ended up calling the master/default branch the "main branch" with the understanding that it is "master" in git and "default" in mercurial.

That we naturally came up with this name means it is a good name. And because it is the shortest, it has my vote.

That you are all used to "master" is no excuse either. There are other version control systems than git, and "master" is not a universal convention. In mercurial, it is "default", and in SVN, it is "trunk". If you are a professional developer, you are probably going to use several different VCS during your career, and it is not a good thing getting too attached to "master".

The main problem I see with the change is that if you are just getting started with git, most training material will refer to "master", and having different conventions can make things confusing at first. Of course, experts know that there is nothing special about "master" and can adapt to any situation, but beginners need guidelines, and we might as well make them consistent.

So your decision rule is based solely on the word length if both words are similarly 'clear'? I can see how this rule can backfire in some cases...

> or are there just a load of white people who have focused on literally the most unimportant aspect of being a black person in the tech community?

Seems that way. It's actually offensive to suggest that such a person should be offended in the first place. It's a "we know better than you and you should be offended" attitude.

What bugs me about crap like this is that it ignores world history, makes these people feel good about doing nothing of consequence, and takes attention away from things that will actually help.

If you are going to help, actually do something that improves the lives of people. Maybe, you should really put some effort into beefing up the Computer Science programs in black high schools and colleges? You are Microsoft, and had a damn policy of only hiring people from certain schools for certain job areas. In 90, one of your damn reps told a classroom of students that they were only good for "help desk" positions because of the school they went to. I'm betting some all black colleges were not on the hire list for actual developer jobs.

Actually doing something useful is hard, this is just signalling how cool you are.

I understand that you are trying to be constructive, but I'm quite surprised by your use of "black high school" and "black colleges". Is it still a thing in the US?

Wouldn't focusing on fixing this situation be more beneficial than reinforcing it?

I understand that you are trying to be constructive, but I'm quite surprised by your use of "black high school" and "black colleges". Is it still a thing in the US?

Yes it is "still a thing". They are mentioned in legislation as Black Colleges. It was an extremely big deal this year when Black Colleges were successful in lobbying for Title III funding. In fact, they are listed officially as Historically Black Colleges and Universities (HBCUs). Native American's higher education institutions are referred to officially as Tribal Colleges and Universities (TCUs).

Wouldn't focusing on fixing this situation be more beneficial than reinforcing it?

So, yes, that is what they are referred to in legislation, so stop trying to imply someone is not using the right words. It really ticks me off when people wordsmith but don't bother actually engaging or knowing any of the history of the people they are being offended for.

Maybe if you stopped implying racism where none exists, we would have a better world.

Wow, I did not expect so much aggressivity. Sorry if I hit some sensible point, but my question certainly did not aim to imply any kind of judgement.

I am not american and never heard about a "black college" before. Are those words (along with the TCUs you mentioned) used for historical reasons, or is there still segregation (wether legally or de-facto)?

The meaning of my second question was actually that I disagree that "beefing up the Computer Science programs in black high schools" will help much beyond a little short term relief. Efforts should focus about understanding and fixing the systemic problems, not the symptoms.

They aren't systematically segregated, mostly by circumstance and clustering by identity group. People tend to cluster in like-cultured communities either by country of origin and/or racial identity. It's not an absolute, but there are communities that are overwhelmingly black, chinese, japanese, etc.

Of course most of the real divides come down to income class, which is part of what should take an emphasis in terms of possible distribution of education funding.

Wikipedia's got a good overview on why "Historically Black Colleges and Universities" exist:


TL;DR, the reason why these exist is because of historical discrimination against black people in college admissions.

While there is much less discrimination in admissions today then there was in, say, the early 1900's, these colleges still have a strong presence in the US today.

And to your point, yes I think we all (or at least most of us) want to live in a world where we don't need race-based communities or institutions, but because our country still suffers from extreme race-based segregation and inequality, IMO it still makes sense to have these active support structures in place.

I tend to bring this up in terms of hiring initiatives as well... if there are X% of people are of $identity Z in terms of the field in practice (let's say 20% female in software engineering). And a large company tries to hit 50% in hiring, they're actually reducing diversity across the industry.

What they should be doing is scholarship and mentoring programs to increase the base if that is their real goal. But that takes actual effort and costs real money.

A small symbolic thing is still worth doing, even if it doesn't directly improve the lives of people.

This doesn't even indirectly improve things.

What it does do is make a few people feel better because they are misinformed and so other things like education would be a better solution, something like "there's no need to feel bad about this word, and here's the logic about why."

No, no it isn't. If it doesn't actually help improve lives, its just an indulgence.

Props to you for committing to your austerity, but we're not all monks in cells.

Austerity? Monks in cells? Really, none of that makes any sense?

Hell, switching your Amazon account to one of those smile accounts will do more good than signalling.

>Austerity? Monks in cells?

You're complaining about indulgence! You're saying that this change won't help people as much as something else. This is a fair criticism. Changing some technical term is probably not a optimally utilitarian use of resources.

However, while you may be trying to live an optimally utilitarian life, the rest of us aren't. I can only speak for myself of course, but evaluating all my life's actions on only that axis is too strict for me.

But, like I said, if you want to do that: props.

No, I'm saying that it won't help people at all. Its an indulgence to make the person doing feel like they are doing something. It will not materially improve lives.

It would be fine if it just made them feel good, but it substitutes for efforts that would help. Its a personal indulgence taking energy from a system when more is needed. It also is a distraction from actual issues. Nothing is often better than something.

> However, while you may be trying to live an optimally utilitarian life, the rest of us aren't. I can only speak for myself of course, but evaluating all my life's actions on only that axis is too strict for me.

Yeah, this is wordplay that has nothing to do with me.

You keep complaining about indulging! What's wrong with indulging in something every once in while?

If your indulging hurts others, then it is something worth complaining about.

I don't exactly understand how you're hurt by this, but fair enough.

Utilitarianism is a philosophical framework. It's not for me, but based on your comments you might be into it:


I am not.

I see no supporting argument for “replacing master with main at GitHub hurts others”; is it somewhere in this thread and I wasn’t able to see it unassisted? If not, we would benefit from you typing it up.

go to the top of this thread chain

I reviewed your initial post https://news.ycombinator.com/item?id=23500764 and I was unable to parse out of your objections why you think that this change hurts others. Could you summarize?

Ok, here is my objection. I'm saying that it won't help people at all. It is an indulgence to make Microsoft feel like they are doing something positive when it will not materially improve lives.

It would be fine if it just made them feel good as people's mental health is an important thing that too many ignore. But, this will suck attention away from people who are actually doing things that will help people. The world has only so much time to pay attention, and that time is valuable. Microsoft is just adding to the noise.

They are bringing homemade cupcakes to a food bank and making the national news.

Inconsistent naming standards hurts everyone. Now some repositories will have master branches while others will have them named something else, it makes things harder to work with. If every developer spends just a minute wondering where the main branch is before realizing the new naming standards, that is still a lifetimes worth of time lost due to this change.

And if you look at that it analogy of a tree, what is a "Master branch". Also what is a "Main branch". It's trunk. Of course then it would be called "The trunk branch", which sounds silly too me, and trunk has a couple sexual slangs tied to it. I read on person naming theirs 'prd', 'uat', and 'dev'. Less typing and describes what the branch is for.

While we're being pedantic, it's a graph, not a tree.

So bar, line, pie, scatter, etc. would be good names. Hehe.

I really don't care what the default name for a branch is. I don't care if people want to change it. Hell, if GitHub starts defaulting to "main" instead of "master" I probably won't even care enough to change it from "main" to anything else in any new repos.

What I care about is that this will inevitably lead to companies and individuals that, for any reason (due to having the name "master" hardcoded in a lot of scripts, for instance), do not make this change in their repositories being labeled as being pro-racism.

We all know how this goes.

This insanity just grows every single day. The purity policing grows ever more intense. It's making my world view bleaker by the minute.

“Waiting for protests at universities to change the Masters degree to Main degree.” Cracked me up.

I’ve never considered “master” branch anything odd, saying “master copy” makes sense. What about music? “Remastering” something... or the terminology around mastering a skill?

Things are a bit out of control. As people say if you look at that term and the first thought is race related that’s on you.

I could see a desire to remove the word “slave” from any replication business. Since the “s” word is directly loaded. But the “m” word has many other definitions outside of that.

These kind of requests are super US-centric without any regards to the rest of the world.

I understand these things stem from a place of discomfort with the racial crisis in the US - and I applaud the intentions.

However, these requests are not inclusive to:

- The foreigner in your team trying to think and communicate in English, while tip-toeing around whatever was deemed offensive this week on Twitter.

- The developer in Botswana trying to keep up with this week's terminology changes as dictated by Twitter influencers in the US.

I dread the day when someone gets in trouble for saying "Hey guys, I added the URL in the whitelist and pushed it to master"

I don't think anyone is going to get in trouble for saying that lol

The only reason someone would, is if they were repeatedly told "hey can you use this term instead?" but they kept using those intentionally to annoy others.

I support changing master - slave.

But the use of master here is from 5 b: an original from which copies can be made especially : a master recording (such as a magnetic tape)

There is no implied slave.

It's derived from masterpiece. Something that a master craftsman has created.

Master has many definitions and usages. Master of a slave is only one minor usage.


Github inherited it from git, which inherited it from bitkeeper, the DVCS that Linux originally used and the one that inspired git. Bitkeeper used a master/slave architecture that git dropped.


The dev that set git to using master says otherwise..


Repositories, not branches. It's just hearsay that the name of the master branch is based on bitkeeper.

Apparently git did inherit master from bitkeeper which had master and slave (replica) repositories.


Nobody cares about the black slave auctions going on in Libya RIGHT NOW. But we are going to remove the word master from our software because it offends people whose ancestors were slaves generations ago.

Correction: because we think it could offend people whose ancestors were slaves generations ago.

It doesn't offend them. This is all just white people looking for problems. Make-work.

In China they are kicking people out of their homes for being black. But we do bend the knee for them because of money. Selective social justice...

I find it a bit condescending and tone deaf too.

It's unfair to the word "Master". Imagine that `Master` will be on the unpopular list everywhere now..

Honest question: are there people out there who are legitimately uncomfortable/upset about the usage of the terms "master" and "slave" in the context of technology? Or is this more so people trying to be too socially "woke" and assuming something to be offensive when it is not?

Master/slave are pretty commonly used terms whenever we talk about things like distributed systems and communication buses. Essentially everywhere that one process, controller, computer, etc. is meant to have authority or control over some other entity or entities, this is often described as a master-slave relationship.

The word “master” still makes sense to me, as it has many different meanings, most of which are appropriate for how they are used in technology.

However I have always felt that the word “slave” (as the counterpart to master) was/is a mistake. It seems to be a relic of the past where people weren’t really thinking through the terminology they chose.

More modern approaches typically use other word pairs, like master/minion, sever/client, active/backup, master/agent, etc. Different pairs are chosen that better describe the relationships, and I suspect those choices were made, at least in some way, to avoid using the term “slave”.

Yes, there are legitimately people who believe the master-slave terminology trivializes American slavery. They are mostly in the U.S. and probably a minority of programmers but they exist.

But in this case, there's not even a slave branch.

> Yes, there are legitimately people who believe the master-slave terminology trivializes American slavery.

I suppose this is something I don't understand. How do terms become trivial when used in separate contexts? They are simply descriptive terms. Furthermore, from an etymological standpoint, the term "master" has been used to signify preeminence since the 13th century. E.g. master's degree, master-key, master copy, etc. This is the meaning that seems more applicable to a version control system.

I agree with you in this case, since master is used by itself, similarly to master key.

But I'll try to provide some insight into the argument specifically regarding master and slave used together.

> How do terms become trivial when used in separate contexts? They are simply descriptive terms.

This is where I think you are incorrect. Master and slave are not simply descriptive terms. Pretty obviously, they are an analogy, just like, for example, male and female plugs. The point of analogies is that they use existing relationships to describe new relationships, so that understanding the new relationships is easier.

So I think the issue for some people is that in master/slave architectures, the master node neither brutally beats the slave nodes nor justifies its power through a theory of racial superiority. Maybe a more accurate analogy would be that one node is the leader and the others are the followers. Maybe we should only use the master/slave in situations which are actually comparable to the historic instances of chattel slavery. Plus, an updated analogy can better serve the purpose of describing relationships. In the context of databases, for example, primary/replica or master/replica are IMO both much better analogies than master/slave.

Sure you can argue they are simply descriptive terms. But if that's the case, why did engineers choose existing terms in the first place?

Also America is just one among the 100% of populated parts of the world that had chattel slavery at some point, it's pretty rich that ignorant people from America tricking themselves into being offended by this sort of thing should have any effect on other people's behaviour.

I've never been a fan of master/slave when it comes to disks etc. although I thought renaming it was dumb (previously). Glad things are moving away from it. But this isn't master/slave, it's master/fork. Of course now that I think about it, main/fork or even better primary/fork sounds good to me.

In the case of source code, I find trunk to be one of the better terms for the primary/main/master branch.

do your own research

Would you please stop posting unsubstantive comments? You've done it a lot lately, unfortunately, and we ban that sort of account. Actually I did just ban you, but then your previous contributions seemed fine, so I reversed that and decided to make a request instead. We'd appreciate it.


"main" does seem like an objectively better word to use. The definition fits better in almost every use case.

May seem like a silly gesture to some, but imagine feeling an emotional trigger every time you had to use a basic tool for your job. That'd piss me off.

I guess the question is, has anyone said that they were personally hurt or offended by it. If anyone was individually affected and not just hurt on behalf of someone else, then by all means make the change.

However, if not, it looks like a cynical publicity grab in light of recent headlines.

Does anyone actually get triggered by this word in this context though? "Master" in git is not related to a master-slave relationship.

The key word there being 'imagine'.

One big problem with "main" is it's very similar to the already well-established branch name "maint".

trunk is probably a better name still.. since everything else is a branch.

master is just another branch in git, so trunk is an incorrect description.

"Main" is already taken. It is the entry point to a binary.

put more time into rebuilding the communities in which you physically reside than into bikeshedding quick symbolic actions to numb your conscience.

donate the cash equivalent to the engineering hours required to make and test this name change to BLM instead, and get something of actual consequence done.

Dear friends, do you think you’ll get anywhere in this if you learn all the right words but never do anything? Does merely talking about faith indicate that a person really has it? For instance, you come upon an old friend dressed in rags and half-starved and say, “Good morning, friend! Be clothed in Christ! Be filled with the Holy Spirit!” and walk off without providing so much as a coat or a cup of soup—where does that get you? Isn’t it obvious that God-talk without God-acts is outrageous nonsense?

It's a self censoring in western. It's anti-intellect. It happened and is happening in China. The result is a small group shuts up everyone. They could tag everything they don't like and stop using it, e.g. winnie. Please don't let it happen.

It's being sensitive to how words can undermine entire classes of people. Growing up kids used to say "that's so gay" all the time in school. Did they literally mean a shoe was homosexual? No, but they're using a sexuality in a bad or derogatory sense. And that sucks and is wrong, and being gay, it was offensive and destructive to hear. Luckily people eventually shifted away from it with some awareness.

This isn't the same thing as a government censoring opposition or 'insults' to the dear leader.

self censoring is even worse. What is happing in west now seems to me that some people don't allow others to talk with tags like racism etc, they punish others with losing job, internet bulling etc.

That's really scary!! In long run, you lost the freedom!

Rephrase it a bit.

Don't use moral or ethics to replace law. Otherwise you are using thought police to replace police.

I kind of get it, there's no real reason the default branch should be named master, but where do we stop? Will everyone with a master's degree have to update their resumes?

It stops when almost every word is offensive to someone in one way, shape, or form, and we are all forced to communicate in binary... excuse me, ones and zeros.

I think what really bugs me about shit like this is it's just make-work. It's easy, mindless, and completely pointless work that is going to make some people feel like they've actually accomplished something. There are real problems in the world right now. This is not one of them.

It's an old one, but relevant to the topic: Antirez from Redis wrote a blog article on this topic (demands to change master-slave terminology in Redis sources) roughly 2 years ago, http://antirez.com/news/122.

The first comment is on the mark: http://antirez.com/news/122#comment-4084872912

Newspeak, book burnings next Thursday. Can't have those idioms any more.

edit: not to mention 30 years of:

if branch in ['master', 'main'] ...

But "master" in git is not about master/slave relationship, its about a "master copy"?

Making these words disappear is a disservice to fighting racism (and other culturally ingrained inequality.)

To address systemic racism, we need to change people's preconceptions and prejudices. These are things that are picked up and learned from other people in one's environment. Removing these words makes them even more intangible than they already are.

Creating prejudice is easy to communicate. Removing it, on the other hand, is an "absence" of something, which is much harder to get across linguistically, semantically and emotionally.

What about people who lost somebody to a python attack?

If my dad died of Tetanus, should I be against memory safety?

The argument was "if somebody is emotionally triggered by using some term, we should replace that term with something else".

I'm not suggesting it's a good point, I'm just pointing out that there's going to be a lot of renaming to do.

You seemed to be making a programming related joke, which I responded with another one.

I wasn't really trying to make a point there, just wanted to be (arguably) funny.

Do we have a national problem with pythons attacking a certain segment of our population? No? But you may be right that it's insensitive to those suffering from ophidiophobia.

Personally I think this is a mistake. As we all know, English words have context, the meaning is adaptive depending on the situation. "master" branch has precedent, we have trained our brains to think about "rebasing onto master". This small change will be disruptive, forcing us to unlearn existing, common phrases. Whitelist & blacklist I support discontinuing, however master is a homonym so doesn't have the same obvious connotations.

Just wondering.

Unless git changes its default branch name to something else, isn't Github's approach futile?

When you "git init", git creates the master branch locally.

And then when you push, I sincerely hope GitHub wouldn't somehow rename that branch to something else...

Wait for them to discover the "removeChild" DOM method...

`Out of memory: Kill process 4447 (python) score 519 or sacrifice child`

Shhhh. Don't let the hardcore evangelic developers hear you.

If it helps normalise the removal of problematic terminology in tech then this feels like a positive thing. Software development has a troubling history of being an overwhelmingly straight, white, male space, ridding ourselves of terminology that causes friction to new developers who don't fit the standard model has got to be a good thing.

I'm certain that most people would see renaming master to main as fairly benign. However. if a company like Github can be open to making a change like this, even if it is purely symbolic, it sends a message that changes to the status quo are possible.

I've also seen some comments complain about the technical difficulty of this change. If this forces developers to put some effort into updating tools that are hardcoded to refer to the primary branch as master then it's good from a purely technical perspective. Especially to help those of us following trunk-based development who already refer it as the trunk.

> Software development has a troubling history of being an overwhelmingly straight, white, male space...

Software engineering is incredibly diverse. There are many East Asians, South Asians, Middle Easterners, and people from underprivileged backgrounds from former Soviet block countries. It also has a relatively high percentage of just unique folks.

Software engineering also has a diversity problem with respect to female, Latino, and black engineers in particular.

I'm just pointing out that "overwhelmingly white" is quite inaccurate.

I here Brazil's tech scene was able to attract a lot of latinos. Maybe a template we could apply elsewhere.

Fair point, overwhelmingly white was poorly chosen - should have left it as problem with diversity.

Wasnt the first software engineer a woman?

Is Mastercard going to be renamed Maincard now?

MainChef. Main of Science. Headmain. Main Wayne. Main of Puppets.

The terms "master" and "slave" are part of standard vocabulary for those who work around hardware. I wonder what would become of them.

One of the other submissions relating to this became flagged for some reason: https://news.ycombinator.com/item?id=23526311

I don't often comment on things, but this seems like a slippery slope and a process that I'd like to counteract in some way, so input/comments are welcome. Original comment copied below:

I'd prefer it if things didn't change, including the master/slave terminology (the 'master' branch doesn't even have a 'slave' in git...)

Have the words themselves become bad to use? It seems that this is a USA centric view anyway with its history (and even then it seems ridiculous--why can't these things be compartmentalised as technical terms?)

Slavery certainly still exists in the world, and has existed in most places at some point. Should we rename 'slavery' to something else too while we're at it? Or forget it exists and existed?

Certainly certain terms become antiquated over time, like the vocabulary used in Emacs (yank/buffer/etc vs cut/window/tab/...), but master/slave doesn't seem to be there yet.

I wonder if there's some way to counteract this newspeak stuff? I think it's harmful that these things happen for such frivolous reasons. Does one just have to be as loud as the minority that drives these things, to counteract it?

Why no one is addressing the biggest problem about programming: separating bits to 0s and 1s. Not only that, but also 0s have no value unless they are led by 1.

This is outrageous!

So next up is academia renaming "Masters Degree" to something else?

I guess it can be renamed as PlusGradute degree. I think it would Doubleplusgood for everyone.

Meanwhile slavery still exists in Libya.

I don't mind renaming it but it feels like a token action without any real weight.

Chattel slavery and slave markets have existed in Mauritania since before the first Europeans even set foot in Africa, and to this day they refuse to end the practice and have told the UN directly that they refuse to end the practice every time another UN member raises a fuss about it.

So yes, this is a token action meant to appease those that are never truly appeased due to their rapid movement of goalposts.

Meh, just PLEASE don't call it "main". That's too generic. I like "trunk".


Who broke the build scripts?

I assume this only applies to new repositories.

So... 5 years from now will we have to constantly guess whether old repos are using “master” or “main”?

This. It is hard coded all over the place in thousands of things.

In fact is it even git any more if the master branch isn't called master? Nope it's an incompatible fork by Microsoft purely by a chance encounter of irony.

Are you being sarcastic?

Where exactly do you depend on knowing the name of the default branch of an unnamed repository, and how do you handle cases where people delete the master branch.

> how do you handle cases where people delete the master branch.

I don't think anybody would want people who delete the master branch.

git diff master..branch

Master is already not consistent. For some repos it's the development branch, for some it's the stable branch, for some it's something else, for some it doesn't exist.

If we want we could remove "master" from everyday usage:

master branch/copy - that's your main or primary

master degree - is now an expert degree

martial arts master - congratulations, you're a guru!

master bedroom - is now your main, great or grand bedroom (in fact it used to be called the main bedroom not that long ago)

skill mastery - you quashed it!

Should we make these changes? I don't know, I'm a white guy. What I do know is it's time to put an end to systemic racism. If making these seemingly small changes are enough to change people's worldview in a meaningful way then I think we should explore it. There's potentially a lot to gain for such seemingly trivial and small changes in word usage.

Guru would be cultural appropriation

Why not this first?

Microsoft's shareholders, during last Dec's meeting, rejected Arjuna Capital's proposal that a report be compiled on the gender pay gap across Microsoft, specifically to include "the percentage global median pay gap between male and female employees across race and ethnicity, including base, bonus and equity compensation."


This makes me sad. The only thing I can do in a case like that is to ABANDON every tool (having a replacement) whenever the company / group behind it starts to drift from the core idea toward strange waters having nothing to do with the objectives of that group... I urge you to do the same. Consider that personal integrity (calling a scam a scam is a matter of honor) is a crucial factor in being in a good relationship with oneself. Let's not accept immaturity as a new norm. Let's slowly and methodically make unfit ideas die, like evolution does. Peace. PS: I never thought that I 'll live thru that kind of crap from tech industry on a large scale. PS2: Think what would happen if evolution would be so easy on its creatures, leaving partially-sound ideas as blueprints for the humanity to deal with. You eat an apple, and you crash your teeth on an unexpected brick of gold inside of it. What? Although gold is precious, a bar of gold found that way is a misery. And it makes the existence of that kind of apple just... Inelegant. Wise nature doesn't do that, and you shouldn't too. Some things are the way they are because it's the most optimal way for them to be. The passage of time is an excellent tutor of what might be considered as a proven solution. The master branch concept has been working for a long time. I have it in my muscle memory by now. And NOW some kind of enlightened, progressive geniuses are going to tinker with how the feedback loops between my mind and the universe have been set up? No way bozos. Get back to school. Take some lessons on philosophy, and maybe even oh history, so you can understand that a wise man isn't going to speak until it's needed. Not even to mention that he isn't going to progressively cry on anyone's shoulder that he doesn't like a this or that definition. I'm a master of my own self, therefore I'm a racist. Said no one to anyone ;) One thing is sure - I'm not going to be a slave to the puppets of the neo-marxist war on language.

It's sad to hear this instead of people taking action against actual slavery.

This is onomatophobia, fear of hearing names. Github is catering to people trying to ignore the problem (slavery) that still exists because of inaction instead of clearing the name "master" from the bad connotation. Logically, it's difficult to battle problems (like slavery) by forgetting it or ignoring that it exists in the first place.

The change is counter-productive for both social and technical contributions.

Can I call that Githubs silly master plan?

Anyway, Fossils main branch is called "trunk" which actually makes more sense than "master" especially because Fossil also has leafs.

All the time and money that will go into this would be much better spent donating to the NAACP Legal Defense Fund or another organization fighting to solve the real problems.

A StackOverflow thread describes some ways to do this when creating a new git repo. Here's an alias that seems to work:

    # https://stackoverflow.com/q/42871542/2040410
    new = !git init && git checkout -b main && git commit --allow-empty -m \"new\"
It's possible this alias will leave "master" defined but in a detached state (not pointing to a commit). I haven't checked this.

First they came for the bikeshed...

Ok, I have to ask - will one of them be a synonym? I imagine there are millions of hardcoded words out there that will break unless they both map to the same thing.

I'm not really sure what this would look like in practice. Perhaps this would only apply to new repositories, or maybe it will only be the default default. It has never been mandatory for the default branch to be called "master" -- it's just the default value from git and GitHub.

I suppose we will just need to wait and see what happens.

Everybody knowing that is a replacement for the word "Master". After 50 years, `Main` === `Master`. Will it?

`root` is better if you really want to make a change. Or rand() is your friend.

Maybe I'm not a native English speaker. After knowing the history of Master/Slave. I still not linking them to the bad side.

If they can, rename `Git` also. Acutally I have some complaints from my clients before.

Your clients complained about the name git? (As an aside, you know Linus named both his projects after himself? :)

Linus named Master branch is Master also. I know it but they don't. :s

I was thinking `trunk` but `root` might be even better.

Reminds me of the santa hat stuff in vscode.

Every time I commit I smile because I've just enslaved more bytes of code. I am the MASTER!!!!!

Whats next, Master bedroom?

I have a Main degree.

Seem unnecessary to me, though I do like less keystrokes to type.

If the word master makes some black people feel uncomfortable, the issue isn't git. It lies in the society.

I like the name change. It’s shorter and makes more sense. If the current name affects many people in a negative way then I support the name change.

It doesn't. No one is offended by this.

Some are offended but not the majority.

This sounds like an April fool or an Onion article... Maybe they could take this opportunity to do something useful & provide a dark mode...

While we're at it, isn't the `git` word offensive? I mean, based on https://www.merriam-webster.com/dictionary/git git means foolish or worthless person! It's not acceptable to call any person worthless! Please change this name.

Have the owners of the alternatives commented on this yet? What to use now? Atlassian? Gitlab?

So there is an actual problem that they could work on. Often the branch which most users should clone and use is not the bleeding edge working branch, which often is master. It would be nice if you could set the default branch for cloning for most users somehow.

Edit: so it does! You learn something new...

AFAIK you can already set default branches for github. Not sure whether that applies when you clone it using git.

That's the current behaviour of updating the default branch in the settings of the GitHub Repository.

companies like github should remain apolitical. this is pure nonesense, merely a show of force by otherwise impotent and misguided liberals. take your outrage somewhere else.

The thought police are growing everyday

> 4. If it prevents even a single black person from feeling more isolated in the tech community, feels like a no brainer to me!

Does/did slavery only affect black people?

It’s really tiresome to see companies and celebrities voice support for equality, freedom, human rights in America while staying quiet (and even telling people to keep politics away from their platform) when it comes to the Hong Kong protests.

If that is the only thing that they can do to be part of the movement that is fine but it is a bit ridiculous.


Bougie malcontents LARPing as revolutionaries and moving from industry to industry like a swarm of locusts has been going on since at least the '90s, it's just now their ability to be noticed is greater due to advances in communications platforms.


There's a reason "slippery slope" is often followed by "fallacy"...

Some slippery slopes are real others are not. Idk why people argue like it can only be one way or the other.

Yet no one really believes that it is a fallacy.

But what about master-slave DB replication!

Typically replaced with primary-replica terminology.

Master/Slave labeling IS weird. When I first saw it in reference to drive configurations, I recall thinking how maybe there was a better way to label them.

But as others pointed out here, "Master" branch is not using that source for the term. Changing it in this context is actively harmful to BLM and race equality.

So, ignore this and don't be a pussy. (Historically pussy == cat by the way. So I am bringing this phrase back for the same reasons that my Master branch and Blacklist/Whitelist are historically clean terms.)

I've said it before, and I predict it now again: a language that is named after valuable mineral chunks that are often/usually/predominately mined by slave labor in predominately non-white countries is better thinking about a rebrand.

Especially when it's basically ground zero for SJW activity in software development.

We're in a "six degrees of separation" between anything widely used in culture and something that can be deemed "racist." If you look, you will find something, no matter how stretched or tenuous the connection.

Do you mean ruby?

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact