Hacker News new | past | comments | ask | show | jobs | submit login
[flagged] GitHub abandons 'master' and 'slave' terms to avoid row (bbc.co.uk)
52 points by exdsq on June 15, 2020 | hide | past | favorite | 154 comments

"Slave" is not a term used by Git or Github, and its use of "master" is not related to the vocabulary of "master/slave". Not the first to say this, but the media seems to be getting this all wrong.

> I picked the names "master" (and "origin") in the early Git tooling back in 2005.

> (this probably means you shouldn't give much weight to my name preferences :) )

> I have wished many times I would have named them "main" (and "upstream") instead.

> Glad it's happenning @natfriedman


You left out the most relevant part:

> Out of curiosity, why 'master'? What was it meant to convey? 'Master' as in 'original' or as in 'owner'? [0]

the reply:

> "master" as in e.g. "master recording". Perhaps you could say the original, but viewed from the production process perspective. [1]

[0] https://twitter.com/yawaramin/status/1272237126474752005

[1] https://twitter.com/xpasky/status/1272280760280637441

For what it's worth, I have to reactions to that, both positive:

1) I came from an SVN background and only switched to Git because I started working at companies that used it. I still prefer SVN's aesthetics (and I wish I had more opportunities to use Mercurial), so I would much rather have 'main' or 'trunk' than 'master'.

2) At my company, my team uses the forking workflow (i.e. we do all our work in our own forks and then submit PRs to merge into the repo on the central server). Whenever I clone and fork a repo, I always nuke the 'origin' remote and create two new ones: my own fork, which I name after my AD username at my company, and the repo on the central server, which I name 'upstream'. That way, whenever I pull or push, I don't have to worry about mindlessly pushing or pulling 'origin' and accidentally touching the wrong repo: if I accidentally do so, I'll just get an error. So I am very, very much used to pulling from 'upstream'.

How does GitHub use "master"?

In particular, how is it different from what is called "mainline" in other VCS systems?

git uses "master" to mean the canonical, pristine version as in the usage of the term in art and photography:

  5b: an original from which copies can be made
  especially : a master recording (such as a magnetic tape)

You can branch from master the way you duplicate a master tape cassette, and the copy is not any worse or subordinate. In fact the whole point is that the branches are improvements.

The 'master' branch uses the word the same way an audio recording does. There isn't a corresponding slave.

The word does come up in database replicas, which are often called master/slave. I can see a clear case where that would be offensive.

Renaming the master branch might be throwing the baby out with the bathwater, but it's just easier to do that right now, and it's a small price to pay.

"Master" is similar to the master copy of a work. It is used as a reference to base branches from.

Caveat: I'm fine with this decision from GH, just clarifying.

I believe it's the same usage as used in music recording, e.g.

> an original movie, recording, or document from which copies can be made.

The only git-specific aspect is that every clone of a repository gets a "master branch" (more precisely a branch named the same as the cloned repository's HEAD, but that is 99.9% of the time "master") and that is the only branch that is automatically created in the clone, just like a "master disk" is used to make copies of the disk.

This is actually a git concept not specific to GitHub.

It doesn't actually matter what the etymology of "master" is in this context. What matters is how people affected by a legacy of slavery view the term and its usage. In general, the term "master" used to denote something that is in charge or in control is problematic.

I guess I shouldn't be surprised at HN's response to this comment. But I am, frankly, disgusted.

That is hearsay at best, an intentional strawman at worst. The fact that bitkeeper uses master and slave repositories has no relationship on the meaning of master for git branches.

Git uses origin and clone for repositories.

I'll just share this with you directly since I don't know how to link to another comment: https://mobile.twitter.com/xpasky/status/1271477451756056577...

The media is most likely getting it right. The history points to the master terminology in Git being tied to the master/slave metaphor from bitkeeper.


In addition to being weird terminology, I have never found a case where "master/slave" is even used correctly. In almost every instance "primary/replica" would be a much better description for how the system actually behaves.

Sounds like your experience is primarily with data stores then?


It's used correctly in several of the cases listed here. Also, Jenkins uses (or used?) the term correctly.

replica doesn't imply a power relationship. Master controls the slave , which is accurate

- Master database tells the slaves what to write

- Master clock tells slave the time

- Master HDD controls the computer , so indirectly controls secondary -- though in this case slave HDD is more auxiliary rather than subordinate (this terminology isnt used anymore anyway)

In any case, master/slave terminology is historical and generally unproblematic, except apparently in the US, but so many words are problematic for someone somewhere that it's not wise to go down that road

Not accurate in databases (where master only means authoritative source), not accurate in hard drives (master only denotes precedence), not accurate in hardware clocks (used to determine sync hierarchy - see NTP for a much better convention). "Master" only makes sense in a system where a component is delegating tasks and controlling one or more "slaves", and even then something like "controller" is clearer.

- Master database tells the slaves what to write

But that's only an ad-hoc state of affairs; the only thing telling a database (in postgres, at least) that it's a replica is that it has a couple of settings telling it what to replicate from, and if you remove those and restart (or otherwise trigger a failover), the replica becomes the new master.

In slavery, the only correct thing for a master to do is to abdicate power, and it is not wrong for a slave to reject that power relationship.

When people use it for hardware and software, there's a tacit understanding that the power relationship must be preserved.

These two are diametrically opposed.

> In slavery, the only correct thing for a master to do is to abdicate power, and it is not wrong for a slave to reject that power relationship.

Once that happens, they are no longer master and slave, of course.

In my field (FPGAs) master/slave is used correctly fairly often - having one module command another module is really common in HDL design. Although I'm happy to see "master/slave" gone, I haven't yet seen a good widely-adopted alternative.

For example, "primary/secondary" is slowly being adopted, but I find it very confusing because it can also mean two modules that perform the same function in parallel, but have a different priority for receiving input.

leader/follower, or commander/soldier could work. Maybe king/pawn or queen/pawn if we really want to uphold the same kind of relationship as slave/master.

Yup, after some thinking I've come to quite like commander/worker.

Some quick research seems to indicate that IDE "master" (Drive 0) and "slave" (Drive 1) operate in a true master/slave fashion.

There are times when the slave drive communicates with the master (rather than the host controller), and the master controls things.

I'm the opposite of an expert, but here's one example according to a document (https://www.ele.uri.edu/courses/ele408/s2001/projects/roland...) that I found. From section 6.3.4:

    During power on initialization or after RESET- is negated, DASP- shall be
    asserted by Drive 1 within 400 msec to indicate that Drive 1 is present.
    Drive 0 shall allow up to 450 msec for Drive 1 to assert DASP-. If Drive 1
    is not present, Drive 0 may assert DASP- to drive an activity LED.
There are a few other sections like 6.3.13 (power-on diagnostics) and 6.3.16 (optional spindle sync) where it's pretty clear that Drive 1 follows Drive 0's lead.

For cars with hydraulic brakes or a clutch, there is the master cylinder and the slave cylinder. the master cylinder is a pump that provides hydraulic pressure to the slave cylinder to do work.

I suggest the terms "boss" and "employee".

I know this is not HN custom, but this is gold. Bravo!


I hope GitHub abandons the term "git", because dumb people might not be comfortable with it.

It would satisfy 100% of the same audience asking for this change

Do you disagree that making black developers more comfortable is worth making changes?

Are black developers uncomfortable with the existing name?

Some are, yes.

As I said in another comment, merely "avoiding offending black developers" isn't reason alone. It's about what actions an individual and a company can take to explicitly work against the normalization of racism, while acknowledging the implicit bias against, and lack of input from, minority people during the creation of these technologies.

If you'd like an interesting example I heard from a POC photography friend - she wondered if default camera settings tended to dramatically underexpose when working with black people subjects, if more black people had been involved in early photographic technology development.

> Some are, yes.

Can you point to people telling their stories of how the common name for default Git branches affected them? All the people I've encountered advocating for changing "master" to something else in Git have been white (when there was any information to attempt categorizing people as PoC / not PoC).

> It's about what actions an individual and a company can take to explicitly work against the normalization of racism

In reference to disposing of "master" in Git, I interpret this as "We must do something; this is something; therefore, we must do it."

Yes, this history of film with regard to different skin tones is interesting. I think even more black people were involved, the most common "or default" film still would have favored lighter skin because there could be no one film that would be good for all complexions. Maybe having multiple stocks to choose from would have been more prevalent.

> Can you point to people telling their stories of how the common name for default Git branches affected them?

Not without doxxing friends in a kind of "Dance for the nice man, Timothy, so I can win an internet argument" way that doesn't taste very good to me. If there's blog posts out there, perhaps? I haven't seen any.

> "We must do something; this is something; therefore, we must do it."

I am with you that we should always be on guard against milquetoast corporate bullshit. I got an email from my Texas senator John Cornyn about how he supports Black Lives Matters, but of course there's nothing in his email and no statements from him condemning racist dogwhistles from his party leader. Hollow words and hollow actions allow people and companies to "cash in" on a movement at cost to the real activists.

That being said, this isn't just github doing this. Most companies in my personal sphere are taking similar steps. My gf's, mine, my old coworkers across the industry, here and in New York... it's a sort of solidarity movement at this point.

Thank you. While public blog posts or social media threads would be better, if you've personally seen or heard black friends or colleagues talking about being bothered by Git branches being called "master," at least that's something.

A statement of support not paired with more concrete action is not much but at minimum a clear statement establishes a standard they can be held to in the future, e.g. "you said you support Black Lives Matter, why aren't voting for Bill 1234?"

Git is originally a derogatory term for people born out of wedlock. There's plenty of "gits" who might feel offended to be reminded of their sinful birth.

I hope gitlab will not follow this trend which is purely PR (pun intented), (if Sytse is reading this thread) , it will give one more reason to love them. As I really do think it's purely short-term thinking.

As other may have said, regardless of where it comes from, most of people now use it with the idea it means "master copy".


* git itself is an offensive term and is renamed

* git blame too and is renamed

* grammar nazi can't correct my broken English anymore (goodwin point <- but how do Jewish people feel about this term ? )

* robot comes from the term robota which mean slaves, but it's okay because that's not English. If it's not offensive in the USA, that's fine i guess ?

And to finish, being of European background, master/slave for me is more linked to the greek cities period.

It is harder to use the "A: I am offended.B:So what?" today. The more vocal proponents are not above going after you personally if you exhibit wrongthink.

That said, the robot example may end up being interesting. How far can this particular language purication can be taken?

I totally agree with you, we're replacing democracy by "power to the loudest".

> How far can this particular language purication can be taken

I'm not anti-american (damn I have to put this kind of disclaimer), but it will go as far as these american-culture-centered people will think X or Y go against their view.

I think I understand more and more my Chinese friends who don't understand people who are trying to convince them "you're living in a dictatorship that's bad, see democracy is sooo good, why are you not listening to me", and they're just "I don't care, I don't understand why it's so much of an issue to you ?"

and yes for robot, the more I think about it, the more I don't understand why that's not the first word to have been reviewed, because the very idea, popular conception of a robot is the humanoid-metal-thing doing your chores, you can't do closer to the meaning of "slave" they don't want to hear about !

English isn't my native language; I've always read the "master" in "master branch" as kind of a "high-quality reference copy", similiar to its use in audio; my native language has a very similar word that doesn't have a slavery connotation, so maybe that's why, but does this usage have a slavery connotation to a native speaker that I'm missing? Is that also true with "mastering a challenge", master sculptor, etc.?

To the best of my knowledge, you'd have to do a "4 degrees of separation" from git back to its ideological ancestors to find out that master was indeed referencing a "controller" with an attendant "slave" function.

But, also to the best of my knowledge, it's not used in that manner in git itself; it's used as you explained it.

This is mentioned elsewhere, but the connotation of master in the context of source control seems to be more along the lines of master used in terms of artifact creation. For example, where you have a master copy of a film or album. This is quite different from the definition of master in master/slave terms. This is definition 27 on dictionary.com.

   of or relating to a master from which copies are made: master film; master matrix; master record; master tape.

The master terminology in Git is very likely historically tied to the master/slave metaphor, originally from bitkeeper.


But a branch from master is not a slave by any definition. Whereas a branch is a copy of a master. To be clear, I'm not against them changing this. But it just seems odd to base it on the implication that they meant it as master/slave when it clearly isn't used that way by anyone.

I was responding to your very general claim that "the connotation of master in the context of source control..."

Here is the bitkeeper documentation[1] saying "we are then going to modify the file on both the master and slave repository and then merge the work."

Safe to say that's in the context of source control? If you meant to say "based on how git works..." then sure, that's a more accurate claim.


I agree that bitkeeper should change from master/slave if they so desire. I'm not aware of anyone using master/slave in terms of git or any other mainstream vcs. And github's specific use of master does not use slave. By changing it, they do seem to imply that they meant it in terms of master/slave though. Branches are not slaves to a master. In standard usage, a branch overwrites the master.

master/slave can definitely go - plenty of alternative terms and worth replacing the dated jargon. primary/leader/writer - or something more specific to your domain - all work.

One piece I don't quite get - what does the branch name have to do with that? I always assumed "master" was from audio recording - i.e. a master record. Does that term also have dubious roots?

> I always assumed "master" was from audio recording - i.e. a master record.

You are correct (according to the guy who picked master as the name) there https://twitter.com/xpasky/status/1271477451756056577

I think this whole thing has been blown out of context. Master/slave I get, that's a direct correlation to one guy telling everyone else what to do. But the master branch has no say on the other branches. There are no implied slaves or demands.

Going down this road implies any use of the word master in the negative

All that said, I hope they go with trunk. We talk about branches, pruning, and trees yet the "trunk" of the tree is the "master"

They would never use `trunk`, it resembles SVN too much. :)

The word "master" doesn't even originate from the usage of the word in regards to slavery. This whole thing is just nonsense. If you want to replace master/slave, that makes sense, but it doesn't mean that literally any usage of the word "master" should now be discarded. We still have Masters degrees, for instance.

And master keys. And master works. And dungeon masters. And MasterCard. And the treatment "Mister". And so on.

Uhh, I am not going to get worked up over this. It is about as silly as whitelist and blacklist ( and who knows, maybe that will happen in my lifetime ).

I do find it interesting that the movement broadly associated with BLM appears to have corporate sponsorship. But the pendulum is swinging way too hard and too fast.

Examples such as these are already being used to discredit BLM. Very reminiscent of OWS btw.

They are looking to abandon whitelist/blacklist: https://www.clockwork.com/news/creating-inclusive-naming-con...

I am officially too old for this world. Thank you for sharing this.

Ohh c'mon seriously.

This is absurd and will break lots of docs

bye to --set-upstream origin master

Docs are less likely to be broken if GitHub implements some automated, global way to rename the main branch: when this isn't done in an ad-hoc, per-repo way, they can implement logic to redirect URLs.

(Or, for a quick and dirty fix, always redirect master to the main branch)

What if you already have a main branch?

It's not absurd. It will break a lot of docs.

We will live.

It will break a lot of code and a lot of tools. For what? To virtue signal about something that has nothing to do with the current civil rights movement?

Should we change the word master data? Git is also an offensive term. This is absurd.

Git is a self deprecating name. It's not a term that normalizes (very) bad behavior.

"Gimp" is a better example of a bad name.

"It will break a lot of code"

Yes, because there's no precedent for non-essential changes which break code. Maybe there's a good reason not to change the "master/slave" terminology but this sure as hell ain't it.

Once again, the usage here has nothing to do with master-slave idea. Obviously there is precedent for breaking changes. The benefits must outweigh the costs, the cost here is monumental, and the benefit here is non-existent.

>and the benefit here is non-existent.

To be clear, I'm not advocating for this change to occur. But clearly others disagree with you on this bit.

I sense a bad faith interpretation of the word "offensive."

The issue with master/slave is way more than "it's offensive." By changing the language, people are taking explicit steps to move away from language rooted in racism. That's an important part of moving a culture away from normalization of oppression of minorities.

No, it's still insane, because it assumes that humans don't have two brain cells and cannot understand context. Master/slave make sense in context where....that's exactly what these things are. Why call them something else? Because these words, when used in a human context, are or can be offensive?

Like, ants(if I remember my biology lessons correctly) use other insects as slaves. In that relationship, ants are the masters and some other insect is the slave. Should we change biology books, because these words can be offensive when used in the context of humans? Why? Any functional adult should be able to distinguish between the two.

For other possible examples - should Montenegro change its name because negro can be offensive when used to describe humans(and even then not everywhere, it's mostly American context where it is)? Should we start renaming all islands, lakes, forests where negro is used in the name? In fact, I know that Finland is doing already this, which makes absolutely no sense to me.

Really, if this whole thing is offensive to anything, then it is to human intelligence more than anything.

What you're doing here is exactly the bad faith interpretation of the concept of "offensive" that I was saying - throwing out example after example of "potentially offensive words" and how we should just throw the whole language out for fear of offending someone. This is an unfair/bad faith interpretation of what's happening here, highlighted by your insinuation that the people who care about this kind of thing have only two brain cells.

This is a watering down of the position to the point where it can be attacked by a stand up comedian saying "sorry if my jokes OFFEND YOU, snowflake!"

You're right that context matters - it'd be terribly abusive for an employer to refer to their employees as their "slaves," for example, far worse than an employer referring to "master/slave" harddrives in their documentation. That much is obvious.

So once again I'll say what's happening here: America is trying to come to terms with its history of racism against POC, the fact that it's far from a solved problem, the fact that there's a lot of work to do before justice has finally been reached. People and companies are looking for ways to help. A great thing a company can do is strive for inclusivity. Doing a little bit of auditing of internal language is fairly harmless and should be uncontroversial, but for some reason there's hordes of what I would describe as "free speech fanatics" always ready to ignore their privilege and kick down the door of public companies should they dare to try to make their POC employees actually feel like they're as valued as the white ones.

Does GitHub seeking to make their POC users and employees feel more included mean that the US government needs to pass thought crime legislation to ban the use of the word master? No. Does it mean a español dictionaries need strike the word "negro" from their lists? No.

It's a company trying to make people feel more included. That's it.

> America is trying to come to terms with its history of racism against POC

I agree, except White Americans are not actually trying to come to terms with their history of racism against POC—this is almost an exclusively non-White movement, which is why I think so many Whites are surprised/confused/whatever by the BLM protests, or GitHub's recent actions…

> except White Americans are not actually trying to come to terms with their history of racism against POC

I disagree. Tiktok is a comically shitty platform, but videos are flowing out of white kids having serious conversations with explicitly or passively racist parents. Sure, a small minority of white america, perhaps, but I don't think there's many white people left in America that aren't aware that something is happening. There were BLM protests in every state. I did a solo protest in Burlingame (absurdly full of old white people) and had tons of support from all the cars driving by and people walking around.

> which is why I think so many Whites are surprised/confused/whatever by the BLM protests

I'm not so sure - some white people are getting the shit beat out of them by the police because they turned up to a protest at the wrong time. Some are very personally starting to "get it."

> Sure, a small minority of white america, perhaps

That's literally all I was saying, so I think we agree. :)

Hah, I guess - The whole country is aware something is happening at least. Fox news made sure of it ;)

Git's use of master has nothing to do with the master/slave idea. The word master been a word longer than it has been associated with slavery. Not every use of master is offensive/rooted in slavery/racism.

> The word master been a word longer than it has been associated with slavery.

Hah, what? Slavery is as old as language, so I find this an interesting suggestion.

Edit: good points about the origin of language below. Another interesting question: if there had been more black computer scientists in early day MIT, Stanford, etc, would these terms have been adapted to the new technologies?

Latin used dominus for the master of a slave, and magister for someone who mastered or taught something.

master -> maetre (old french) -> magister latin

magister in latin, as far as I remember is the term used for the teacher (which is the same meaning in modern french, maître is how you call a teacher of primary school)

But in this case, the term "slave" isn't being used, right?

Or they can quietly allow use of 'master' as an alias until it falls out of use.

Careful, there's nothing more permanent than a temporary fix.

Github is changing the default branch name for new repos. New repos tend to have the most fresh eyes and agility. It shouldn't hurt too bad.

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

This is worth breaking the docs. They’ll be easy to fix.

Naming the default branch "master" is only a convention, not a requirement. Therefore, docs should not make any assumption about the name but give it as an example or <variable>. The deficiency here is clearly in the docs.

This. Poor choice of the original name was codified as some law, but it has never been a law and it’s time to clean up. I have seen discussions around the topic: “we have the master branch, what should we store there?” Semantics of the name were lost long time ago and it became just a random magic string in a ritual, which is not easy to explain or understand.

You said that: any example that uses "git rebase origin/master" would be broken.

Only if a project has used master as the main branch. We use "develop" for whatever reason and "master" (created by default by gitlab) hasn't updated since initial commit.

I agree that teams should be making these decisions on their own. It's just a branch name.

It will not be broken, it will be just an example for a random branch with a strange name. People which are not able to understand the abstraction and to apply it to their own repository structure, must choose another job.

A few days ago I submitted a post[1] to an accepted pull request on the OpenZFS project to remove references to "remove references to slavery"[2].

[1] https://news.ycombinator.com/item?id=23484466 [2] https://github.com/openzfs/zfs/pull/10435

What about SPI and I2C protocols? In any case I always refer to those devices as nodes...Master and nodes.

I use controller and device.

This is performative. Meanwhile there are literal slave markets in Libya and elsewhere in the world. Yet if you resist this feckless renaming side-show or call it out the mob proclaims you complicit.

Moderator - why was this post flagged? I used the article headline and it is an interesting move that will affect a lot of us (we will need to consider this during naming strategies for instance).

Moderators don't flag, users do. Presumably because this is a duplicate, it's been submitted at least twice already.

Ahh - I did look but didn't see one when I submitted it. Fair enough :)

Are there any thoughts on what technical change will actually happen? Will github change existing branches? If I make a new git repo with the defaults locally and push, will github and local have different branch names?

What git would do for this makes sense (git init -> branch main), but I'm not sure what Github functionality could change that'd make sense.

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

Trunk is offensive because it reminds me of people who hunt elephants for their trunks

it's offensive to people who have suffered with SVN !

The word you're thinking of there is "tusk", not "trunk".

Anyone holding a Master's degree is now guilty of something.

I don't want to throw a tire on the fire but I'm going to emit my $0.02 at this time:

If it's not a big deal, change it.

If it is a big deal, change it.

You're conflating cost:reward. If it's a large cost and doesn't actually matter, maybe don't change it.

There is talk on the originating GitHub issue to make a list of repos/authors that still have master as a branch name as a way to shame them into compliance.

Do you have a link?!?

Badge of honor.

Not a good idea since this is all public. There will be spiders that gather usernames of those who switched back to master. It's probably better to just abandon github.

Why would you abandon GitHub because of this change? If GitHub is signalling a sympathy for the black lives matter movement with this change, seems to me you're signalling a direct opposition to the idea of making black developers feel more welcome.

Is that your intention?

you've just proven his point, he was expressing a good point that currently there's a lot of data points showing that when you express a not "100% agree" opinion with these kind of movements, extremists of said movement will harass you online, saying that things in "if you're not with us, the good guys, then you're with the bad guys". Like you did by saying that for you it means is in total opposition.

Why can't he just be "I don't have an opinion" and just expressing his view on simply just "renaming vs quitting"?

If they didn't have an opinion, why are they leaving GitHub over the change?

I am not arguing in favor of harassment - my argument is, either it's a change that you acknowledge is to be more inclusive to POC developers, and you reject that that is acceptable and thus leave GitHub, or you don't believe it's important / don't care / it's just a branch name, in which case you wouldn't leave GitHub.

The action of leaving GitHub over this change makes a statement. Saying "I'm not making a statement" while doing so changes nothing about that.

I don't see him stating he's personally planning on leaving github ? he does advice to do so yes to someone who try hard to have a behaivour back on a plateform that said plateform is rejecting.

I have no opinion on alcohol consumption, but I sure will tell my friend "if you're planning on adding soda to your whisky, just because you don't like alcohol, you may just don't drink at all" while i'm waiting for my beer to come.

also you're saying

> the idea of making black developers feel more welcome.

I don't think a Nigerian care about ? Or you're talking about american-black ?

The reason I suggested not to use that script was to prevent people from becoming victims of scapegoating and crucifixion, the same way I would suggest a North Korean dissident use Tor Browser instead of Microsoft Edge.

I am probably not quitting Github just because it's convenient and I'm forced to use it often. But I think it's stupid to pressure someone to be a user of some corporation's proprietary SaaS product or else they're evil and bad. Give me a break. For example, I bought Pepsi today--should I be attacked because I'm not drinking Coca-Cola even though the CEO of Coca-Cola endorsed $CONSENSUS_WORLDVIEW.

We wouldn't even be having this discussion if the majority of individuals and software companies hosted their own git servers and web clients. If I were using the GPLv2-licensed git and self-hosting my own FOSS web client for git, I could change the default branch name to "main" without having to beg some corporation because I could edit and run the code.

Wait, did they actually change someones live repo already? All my repos still have `master`.

I suppose some other terminologoes will soon be questioned, I hope parent/child always remains

parent node and child node used to be father node and son node before it was renamed to be more gender neutral

I'm sure the people who made this decision at github will lay their heads on their luxury goose down pillows tonight thinking they've done their part to make the world just a little bit better. In reality, they didn't actually help anyone, they've set the stage for coding/machine related headaches for years to come, and they've made themselves look like idiots.

On the other hand, fascinating to see the power of a modern angry mob in action.

There are 2 distinct angry mobs now. I haven't counted the responses, but it looks to me like the great majority of people who responded to this here on HN, reddit and on twitter are against it and/or are questioning the value of making such a costly change.

I don't get the title "GitHub abandons 'master' and 'slave' terms to avoid row". What row has this avoided? It seems it has generated a huge one, avoided none.

You have to assume that something happened that lead to this. Perhaps that was the row.

Can I 'assume' that there was a 'row' everywhere that decided to change away from master-type terminology? I could also assume that there was an overwhelming conscensus since they were able to act so quickly on something like this. Both arguments would not be based on any actual fact though.

Frankly I doubt it. While I saw a number of supporters of this change (albeit small compared to those who are outraged), those who have personal reasons to be offended seem to be a tiny minority if any at all. Those who advocate for the change seem to be all justifying it as beneficial to someone else- who though, it's not clear.

A lot of people are missing the point here.

Regardless of why it's called master, the term bothers some people quite a bit and the cost to use a different term is trivial.

There is a small cost to updating existing projects, but for new projects, the cost to use a different term is zero. In return you make your workplace less hostile to some of your co-workers (or potential co-workers). This should be an easy decision.

Scrolling through the Twitter threads that spawned this debate, I’m presented with nothing but the faces of (almost exclusively) white liberal men.

It seems to me that, unless it comes from the mouth of a black person, opinions as to the offensiveness of “master” are worse than worthless.

> It seems to me that, unless it comes from the mouth of a black person

I would even say more, a non-american-black person. It's like forgetting that even though most of american-black people have been subject to white master/black slave slavery, most black people on earth are African black, where they have not been subject to white master/black slave slavery (they have been subject to white colonialism, but they've also been subject to black/black slavery)

Then maybe you should read the words of a black person on the topic:

> So it’s like, you know what you’re saying is not right. You’re just not trying.


This link shows the problem of using master/slave. I think everyone in this thread is ok with moving away from using those terms. The problem is that the usage of master in terms of git, and github in particular, has nothing to do with master/slave. The word slave isn't even used in standard git or github parlance.

What you're saying is that all uses of the word master implies master/slave, which is what people are disagreeing with. In the recording industry, everyone uses the term master to denote the production copy of combined tracks. The tracks that make up a master are not slaves. In the same way that branches that make up a master vcs are not slaves.

In git parlance, master is where your builds come from for deployment. And branches are where you work on features. When branches are complete they merge back into master. How does this relate in any way to a master/slave definition? Based on the logic used, I would expect record studios to be moving away from using the word master as well.

> What you're saying is that all uses of the word master implies master/slave,

What it implies depends entirely on reader perspective. What I'm suggesting is that with at little or often zero cost we can avoid this whole issue and make some users more comfortable working with us.

I could understand the argument if there was some kind of big cost to changing. The company I work with uses the master repo and I'm not advocating internally to change it right now. But for future, I'll use main. Because there is zero reason not to.

> In git parlance, master is where your builds come from for deployment.

As has been pointed out multiple times on this topic, use of the term in git did not come from the record industry. Git almost certainly uses the term master because Linux kernel developers used Bitkeeper prior to git. And Bitkeeper absolutely used the terminology master/ slave.


Just to make you aware, the actual author of this in git does not say the same thing. While he wishes he had chosen better names (https://twitter.com/xpasky/status/1271477451756056577), he did not mean master in terms of master/slave (https://twitter.com/xpasky/status/1272280760280637441).

He also very clearly agrees that master is a dated term which should be left behind.

> I have wished many times I would have named them "main" (and "upstream") instead. > Glad it's happenning


The master/slave nomenclature is a completely different issue than “master branch” in git, as has been noted many times in this thread and related threads.

On an aside, that’s a profoundly awful website. At one point, over 60% of my screen was filled with ads (top banner video ad, bottom banner image ad, inline text video ad).

I noticed new capitalization rules. I never knew black is Black and white is White.


I wonder what name are universities going to choose to replace master's degrees, it's a small change to make the environment less hostile and all of that.

Its maybe zero for you, but not for some, if you have automation build around hardcoded 'master' branch.

I can't reply without repeating myself so just gonna copy/ paste from the post you replied to.

> There is a small cost to updating existing projects, but for new projects, the cost to use a different term is zero.

No its not, because you bring your stuff from previous projects on new projects.

If doing a simple rename as part of scaffolding a new project is a noticeable cost to you, then you should seriously reconsider your methods.

Going simply by the conntation of the term, master doesn't imply some kind of ownership or control over anyone. In the source control world, the branches are more in control of development than master.

But if we want to talk about words used in workplaces that do imply control and ownership, can we discuss "subordinate"? Because that word is the most analogous word to "slave" that is used in everyday business.

For all the people who don't like this change, here's an analogy. Try thinking of it like you're making your bed. Admiral William H. McRaven has a terrific speech (link: https://jamesclear.com/great-speeches/make-your-bed-by-admir... ) about making your bed, with some excellent quotes:

"Making your bed will also reinforce the fact that little things in life matter. If you can't do the little things right, you will never do the big things right."

"If you want to change the world, start off by making your bed."

No one really thinks that renaming "master" branches is going to save the world, or really, do much of anything. I'm going to do it because it's a little thing that takes less than a day. After that I'll move on to something else.

The problem here is that the implication that all uses of the word "master" are equivalent to the combination "master/slave". So tomorrow you will not be able to make your bed in your "master" bedroom. And the day after that you won't be able to display your "master" degree on the wall. And avoid restaurants with "master" chefs.

I've already heard people I know talking about avoiding the use of the term Master Bedroom.

Asking out of good faith here. Isn't this essentially arguing the broken window theory?

> The broken windows theory is a criminological theory that states that visible signs of crime, anti-social behavior, and civil disorder create an urban environment that encourages further crime and disorder, including serious crimes. The theory suggests that policing methods that target minor crimes such as vandalism, public drinking, and fare evasion help to create an atmosphere of order and lawfulness, thereby preventing more serious crimes.

Perhaps there are two interpretations of this. 1. That it's a meaningless first step or 2. That it is a small but meaningful first step. To those who see (1), I think this is akin to heavily policing a neighborhood and arresting people for talking too loudly.

Or is it arguing the brown M&M provision - https://www.snopes.com/fact-check/brown-out/ ?

> The M&Ms provision was included in Van Halen’s contracts not as an act of caprice, but because it served a practical purpose: to provide a simple way of determining whether the technical specifications of the contract had been thoroughly read and complied with.

Or is it arguing the canary in the coal mine (a sentinel species which is affected by too-high carbon monoxide levels before humans are, giving miners a warning signal)?

Personally, I don't think the BWT analogy is the right one given how BWT is so strongly coupled to funding the police - even in its original non-zero tolerance version - and the well-known racism in its real-world application in NYC. You can see from your quote the lack of consideration of non-policing methods to target vandalism, public drinking and fare evasion.

Eg, pay for more sanitation and cleaning crews to fix vandalism, change the laws to keep cops from being the subsidized security force for abandoned buildings, restore public health services to help the homeless (one I've read about is to create supervised "flop house", that is, very cheap and basic housing where addicts and drunks have safer place to drink), and support mechanisms like raised minimum wages, increased unionization, or basic income which help people have the money to pay for the subway fare and an increased desire to maintain the current social system.

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