
GitHub abandons 'master' and 'slave' terms to avoid row - exdsq
https://www.bbc.co.uk/news/technology-53050955
======
jb775
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.

~~~
wayneftw
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.

------
jameslevy
"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.

~~~
gowld
How does GitHub use "master"?

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

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

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

[https://www.merriam-webster.com/dictionary/master](https://www.merriam-
webster.com/dictionary/master)

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.

------
paxys
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.

~~~
buboard
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

~~~
eesmith
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.

~~~
amenod
> 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.

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

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

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

~~~
zcrackerz
Are black developers uncomfortable with the existing name?

~~~
komali2
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.

~~~
extra88
> 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.

~~~
komali2
> 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.

~~~
extra88
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?"

------
allan_s
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".

Soon:

* 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.

~~~
A4ET8a8uTh0
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?

~~~
allan_s
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 !

------
dividedbyzero
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.?

~~~
falcolas
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.

------
logicalmind
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.
    

[https://www.dictionary.com/browse/master](https://www.dictionary.com/browse/master)

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

[https://mail.gnome.org/archives/desktop-devel-
list/2019-May/...](https://mail.gnome.org/archives/desktop-devel-
list/2019-May/msg00066.html)

~~~
logicalmind
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.

~~~
tchaffee
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.

[https://github.com/bitkeeper-
scm/bitkeeper/blob/master/doc/H...](https://github.com/bitkeeper-
scm/bitkeeper/blob/master/doc/HOWTO.ask#L223)

~~~
logicalmind
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.

------
NightMKoder
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?

~~~
chrisan
> 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](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"

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

------
A4ET8a8uTh0
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.

~~~
tenaciousDaniel
They are looking to abandon whitelist/blacklist:
[https://www.clockwork.com/news/creating-inclusive-naming-
con...](https://www.clockwork.com/news/creating-inclusive-naming-conventions-
in-technology/)

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

------
agustif
Ohh c'mon seriously.

This is absurd and will break lots of docs

bye to --set-upstream origin master

~~~
cooper12
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.

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

~~~
komali2
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.

------
atombender
Dupe:

[https://news.ycombinator.com/item?id=23518123](https://news.ycombinator.com/item?id=23518123)

[https://news.ycombinator.com/item?id=23500093](https://news.ycombinator.com/item?id=23500093)

------
asadhaider
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](https://news.ycombinator.com/item?id=23484466)
[2]
[https://github.com/openzfs/zfs/pull/10435](https://github.com/openzfs/zfs/pull/10435)

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

~~~
bonzini
I use controller and device.

------
ryanmarsh
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.

------
exdsq
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).

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

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

------
albntomat0
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.

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

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

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

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

------
valand
Previous discussion:
[https://news.ycombinator.com/item?id=23500093](https://news.ycombinator.com/item?id=23500093)

------
carapace
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.

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

------
Udik
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.

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

~~~
pseudosavant
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.

------
mesozoic
Script to change it back [https://github.com/DaniruKun/rename-
branch](https://github.com/DaniruKun/rename-branch)

~~~
aeonsky
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.

~~~
bonzini
Do you have a link?!?

~~~
aeonsky
[https://github.com/git-for-
windows/git/issues/2674#issuecomm...](https://github.com/git-for-
windows/git/issues/2674#issuecomment-643842448)

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

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

------
ogre_codes
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.

~~~
dlivingston
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.

~~~
ogre_codes
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.

[https://madamenoire.com/1167067/working-while-black-my-
cowor...](https://madamenoire.com/1167067/working-while-black-my-coworker-
used-a-master-slave-analogy/)

~~~
logicalmind
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.

~~~
ogre_codes
> 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.

[https://mail.gnome.org/archives/desktop-devel-
list/2019-May/...](https://mail.gnome.org/archives/desktop-devel-
list/2019-May/msg00066.html)

~~~
logicalmind
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](https://twitter.com/xpasky/status/1271477451756056577)),
he did not mean master in terms of master/slave
([https://twitter.com/xpasky/status/1272280760280637441](https://twitter.com/xpasky/status/1272280760280637441)).

~~~
ogre_codes
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

[https://twitter.com/xpasky/status/1271477451756056577?s=20](https://twitter.com/xpasky/status/1271477451756056577?s=20)

------
paulhodge
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...](https://jamesclear.com/great-speeches/make-your-bed-by-admiral-
william-h-mcraven) ) 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.

~~~
logicalmind
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.

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

