DEV Community

Cover image for Replacing master in git

Replacing master in git

Damien Cosset on June 13, 2020

Master/slave denomination The master/slave denomination is a common one in technology. Master/slave is an oppressive metaphor referring ...
Collapse
 
dandv profile image
Dan Dascalescu • Edited

"Master/slave is an oppressive metaphor".

There are so many problems with that statement that what I initially wrote as a quick response has turned into a longer post. Read it at 8 problems with replacing "master" in Git.

This comment is only kept for historical purposes.


First off...

1. There's no "slave" in Git.

Maybe RAID disk arrays would have this problem, but not git. So there's no "master/slave" metaphor in Git to speak of.

2. Words change meanings over time

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

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

3. Nothing is oppressive by itself

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

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

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

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

Blacks don't give a damn

5. What are the downsides of this rename?

When making a decision of this scale, that invalidates 15 years of scripts and CI processes and Git tutorials using the word "master", it would help to see its ROI. If nobody is actually choosing to be offended by this word, then all we're doing is wasting time changing a perfectly working process just to virtue-signal that we're "woke", while annoying far more people in the process and wasting their time when "master" won't work and "principal" will break things. Do consider that the vast majority of developers have nothing to do with oppression, and have never intended to oppress anyone.

6. Is this purely a PR move?

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

Github contact with the ICE

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

7. What shall we rename next?

Slaves were hanged from branches at some point, should the word "branch" be changed? How about the Lighthouse web speed auditing tool? Light is usually white... How about the Invictus poem? Let's ban it!

I am the master of my fate:
I am the captain of my soul

8. Is this humiliating to black developers?

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

Collapse
 
olivierjm profile image
Olivier JM Maniraho

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

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

Collapse
 
premedios profile image
Pedro Remedios

Well I'm not changing! Master stays! Period!

Collapse
 
kewi69 profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
Kenneth Wilhelmsson

I really expected this to be a joke. But horrifiedly it seems to be real to some people. This mass hysteria is very strange to me. People really are that stupid.
Lets destroy all history and never learn anything from the past. Yeah
Anyone ever checked the skin color of someone doing a pull request before looking at the code?
It's cray.

Collapse
 
petteyg profile image
Gordon • Edited

"Words matter. The words we use to define concepts have a lot of importance"

Yep, they do. Context also matters. Pretending you don't know a word doesn't make whatever connotations may apply to said word (out of context) magically disappear. Should we also stop using the word "integrated" in IDE, since it's also a reminder if you take it entirely out of context? How about "dark" color schemes and "race" conditions? On other "trigger" words, as mentioned in other comments, are you also going to insist on renaming FAT (file allocation table)? How about "smart TVs", since the name must surely be offensive to those who got a low SAT score, or even "SAT" for paraplegics who find its association with "stood" offensive? How about the handiman's footstool? Stool means poop in the same lack-of-context you're applying to Git's branches. Poop is gross so we shouldn't call a tool a piece of poop. For that matter, we're all using tools here, and "tool" is sometimes used as an insult, so we obviously need a new word for the things we're using every day to do our jobs.

The rabbit-hole of stereotypical SJW bullshit always goes deeper. Language has context, and that matters.

Collapse
 
nikoheikkila profile image
Niko Heikkilä

If we visualize Git as a flow of branches from a single point in history, then names like default and main are more accurate. I would even use origin, but it's usually reserved for Git remotes when forking repositories. For myself, a branch called master would tell that branch has total control over other branches which is not the case with Git.

The push back in this issue is very typical human behaviour visible in many discussions in our society. When someone declares that eating red meat is bad for you, there usually is at least one stating how they will grow their meat consumption just to arouse reaction and potentially ease their insecurity.

Let's strive for a more inclusive future in tech and make software that is painless to evolve as time goes by.

Collapse
 
ben profile image
Ben Halpern

When I was first learning git I found master to be wholly unhelpful in helping me grasp the concepts.

I also feel like when I was getting familiar with continuous integration I again would have gripped things better if explicit and purposeful main and secondary branch naming were a thing instead of the master terminology.

Collapse
 
thefern profile image
Fernando B 🚀

Why not just call it default? After all is the default branch.

Collapse
 
jrtibbetts profile image
Jason R Tibbetts

In our organization, develop is the default branch. I like the suggestion above of using production or release.

Collapse
 
bdwakefield profile image
Benjamin D Wakefield

As others pointed out "master" is not always "production" or "release". In our work flow it is not. That feels like the main practical issue. We can't all agree on a branching strategy and everyone deploys differently. Code has to move differently. Any name that has to do with "production" is out for us -- it doesn't work.

Thread Thread
 
shaunagordon profile image
Shauna Gordon

As others pointed out "master" is not always "production" or "release". In our work flow it is not.

That's an argument in favor of "production" being the name of the default branch, because then it forces you to be mindful about setting up your workflow and using the intended process from the get-go (even if that setup ultimately becomes automated). Something rather generic and non-descriptive like "master" allows for people to fall into bad habits during the beginning of a new project, even when the process dictates otherwise.

Any name that has to do with "production" is out for us -- it doesn't work.

What's your workflow look like?

Thread Thread
 
bdwakefield profile image
Benjamin D Wakefield

No it isn't. It assume you want to release from the default branch. We don't and I am sure there are many others that do not either. There is no single workflow that is correct for everyone. I am very much against anything in a tool that forces a workflow. As soon as you do that you will find people needing to work against that workflow. It creates unnecessary friction. Master makes far more sense as the default branch name. It is the "master" copy from which all other copies are made. Think recording master for film -- less of a thing since we are basically all digital now but that isn't the point.

As far as what we do... We have branches for each environment; Dev, Beta, Demo, and Release (Production). Each environment has its own web, file, and database servers. A typical change workflow goes like this (feel free to substitute merge and pull request as you like -- they are effectively the same in terms of the end result).

A feature branch is made from master -> development work done -> feature is merged to beta for testing -> merged to demo for external UAT

From here once QA and UAT are done we have a group that reviews items pending release. We sometimes have conflicting timing needs or things that are interdependent. We have a lot of different things going on so not everything that finishes UAT is released just because it has passed. The code makes its way into into master when it is approved for release. Once approved the feature is merged into master, call it a release candidate if you want.

From there a merge is done from master to release. Builds are connected with each environment branch to deploy as needed. Our releases happen once a week at the same time. We need to maintain a link to what is in production in case we need to hot fix. It is rare but it does happen.

Could we do it differently? Probably. Are there better ways? Probably. Is this way wrong? I don't believe so. We have had a very good success rate with it. We aren't containerized. We have heavy environments. It is just the way it is. So we are managing what we have that gives us speed of process with some security / safety.

I would LOVE to be in a fully CD/CI pipeline. We just aren't there yet. I don't think I would change much about the process other than automating a lot of the steps though. I would still want unique branches by environment. It just makes things clean, clear, and easy. What is in production? Look at the release branch. It'll tell you.

I don't care that much if the name is changed (although to me there are far more issues than folks are willing to openly discuss with renaming the default branch). Trunk is better as it has a similar meaning. But git hates svn... I am very much against anything that would imply a workflow.

Thread Thread
 
shaunagordon profile image
Shauna Gordon

No it isn't. It assume you want to release from the default branch.

Okay, it seems my attempt to describe what I'm talking about more succinctly failed.

Let me retry with the full text that I posted elsewhere:

In my opinion, naming the default branch "prod" (or some variation) is actually a fantastic idea almost regardless of workflow. Here's why:

In every workflow, there's a branch, somewhere, that pushes to production. Whether that's the default or not and what exactly it's named isn't particularly relevant in the context of git (branches can always be changed). It's still the one that gets pushed to the production server or pulled by the pipeline to build the production result in some fashion. This makes it explicitly clear that this branch is the production one.

Naming the default branch "prod" sets up that expectation and discourages directly changing the code on that branch from the get-go (something I know I'm guilty of). In other words, it forces us to be mindful of what we're doing, even early in the project, where habits are most likely to be formed and ingrained, but workflows and processes are most likely to be super loose. We start with the habits we want in the long run, instead of allowing bad habits and then having to unlearn them later.

In workflows where the default branch isn't supposed to be "prod," it forces that split immediately (again, avoiding the fast-and-loose tendency that can happen early in a project), by forcing a new branch to be created to become the new default branch.

The beauty, too, is that most of this can be automated with aliases if you want the automation. Then you get the git scaffolding your project needs from the beginning, and you've still gone through the process of making thoughtful decisions about it (or, you made the deliberate effort to not be thoughtful and mindful about how you set up your git repository).


Master makes far more sense as the default branch name. It is the "master" copy from which all other copies are made.

You rail against assuming workflow and yet you're doing exactly that here. I've worked with several workflows where master very much isn't the "master copy from which all other copies are made." In fact, I've used workflows where "master" was not branched from at all after the initial workflow setup. (My static sites use "master" for their generated output. That branch doesn't even have history, because the pipeline nukes it with each update.)

But here's the thing: no matter what the default branch is named, git doesn't assume workflow. The default branch only exists because it needs a branch to work with. Git itself doesn't even follow your "master branch is master copy" paradigm except in the loosest of senses (because it needs a branch to start with), because it doesn't care what branch you branch from (or merge into). It's only when you get into the broader ecosystem tools like Github that you really start seeing this paradigm, at which point, it's fully configurable.

Collapse
 
damcosset profile image
Damien Cosset

Default works for me 😁

Collapse
 
terkwood profile image
Felix Terkhorn

Nicely done! I've been using "unstable" for a while now, just due to my sheer love of Redis (this is their main branch name) - - - AND the fact that I have a healthy skepticism about whether any given commit I make will actually work 😉

Pulling in fewer cultural connotations is bonus! ✌️

Collapse
 
damcosset profile image
Damien Cosset

Haha, I've never heard of the unstable branch before, but that's a nice touch. If my imposter syndrome is kicking in that day, I'm not sure I would have enough courage to push to an unstable branch 😆

Collapse
 
dem1urge profile image
dem1urge

Nice to know I'm not the only one affected by imposter syndrome. haha!

Thread Thread
 
terkwood profile image
Felix Terkhorn • Edited

No no no. I belong precisely because I ship errors 😉 mistakes are fun and universal 🌌

Collapse
 
waylonwalker profile image
Waylon Walker

Is it implying that the HEAD of the default branch is the unstable release and Tagged versions are stable releases?

Thread Thread
 
terkwood profile image
Felix Terkhorn

Yeah, and they also hang onto release branches in addition to the tags

Collapse
 
terkwood profile image
Felix Terkhorn

😂

Collapse
 
brian32768 profile image
Brian Wilson

This is confusing since to me "master" = "release" branch and the unstable branch is "develop". Of course I have about 20 repos and like 18 of them have no develop branch. So changing "master" to "unstable" and having no releases is more accurate for me! Using unstable would be a warning to everyone.

Collapse
 
dem1urge profile image
dem1urge • Edited

I think I'm going to name mine 'disturbed' and let THAT be a warning to everyone. 🤣

Thread Thread
 
terkwood profile image
Felix Terkhorn

Haha 🏆 💯 🌟

Collapse
 
terkwood profile image
Felix Terkhorn

Yeah I think Redis specifically likes to just discourage people treating their default branch as the source of truth. So I think that can be helpful in some legitimate measure. I've worked on teams where it's like, "master is sacred". Also valid, just depends on the local attitude

Collapse
 
icatalina profile image
Ignacio Catalina • Edited

As far as I know, the issue is not with the word master but with the word slave. I'm not sure why you see git's master as the kind of master/slave relationship.

To me, git's master is more of a master/copy:

master

Collapse
 
damcosset profile image
Damien Cosset • Edited

Git's master is historically tied to master/slave. It got the name from BitKeeper.

Source here

Collapse
 
yawaramin profile image
Yawar Amin

Not quite. That was an interpretation, based on quite a lot of inference ('probably'). On the other hand, the guy who actually came up with the term says he meant it as in 'master copy': twitter.com/xpasky/status/12722807...

Thread Thread
 
waynejwerner profile image
Wayne Werner

FWIW he also suggests that the BitKeeper history might also be valid.

Given the fact that I don't remember why I called a thing that thing 6 months later, wouldn't surprise me if that were the case. It's also possible that both were the case: master, the word, came from BitKeeper, and he also learned that it meant something else.

Thread Thread
 
yawaramin profile image
Yawar Amin

Yes, you are right. I later learned that the git team were thinking and using 'master/slave' terminology for repos around that time.

Collapse
 
icatalina profile image
Ignacio Catalina

Fair enough. If you look at bitkeeper's documentation though, it refers to master as the master repository. In git, all repos are equally important, it is hard to see when we normally use a server (eg. github) as the source of truth. But in reality all repos are their own master. If anything git freed all the slaves, hehe.

Thread Thread
 
damcosset profile image
Damien Cosset

I hear your point. But the master/slave denomination is still quite common is technology. Even if it is rarer these days. The history is there and even if the meaning has changed or time has passed or whatever, if there is a slight chance that this will be interpreted as master/slave ( like it is today ), it should go away.

Thread Thread
 
dandv profile image
Dan Dascalescu • Edited

UPDATE my comment grew into a proper post, 8 problems with replacing "master" in Git.

The comment below is only kept for historical purposes. PS: congrats to the OP for taking more time to think about this issue and keeping their post for accountability.


Why exactly should it go away? Because one sensitive soul out there doesn't have a bit of self-control and chooses an interpretation you have no control over?

Did you mean to oppress anyone when you simply used a word that had become standard?

Words have multiple meanings. "Drug" can get you in jail, or save your life. Should you never use "drug" again because a cop might interpret "I need a drug for pain" as you seeking fentanyl, not aspirin?

There's always going to be someone offended or triggered by anything. Choosing an interpretation of a word with multiple meanings is just that, a choice.

To me, "master" comes from the records industry, where you had a master record/CD and made copies. I don't see why I should mess up all my git workflow and scripts for the purely theoretical slavery interpretation of the word by nobody who will ever use my private repo, and why all git tutorials and articles should become invalid because "master" is now demonized.

Has anyone ever actually complained about this word for git branches?

Thread Thread
 
damcosset profile image
Damien Cosset

Yes

Thread Thread
 
jmccabe profile image
Info Comment hidden by post author - thread only accessible via permalink
John McCabe

Who? Other than you.

Collapse
 
jrtibbetts profile image
Jason R Tibbetts

But who knew that that was the origin? I remember the days of The appallingly-named master & slave device controllers, but had no idea that the same terminology was originally in git.

Collapse
 
stevieoberg profile image
Stevie Oberg

The problem here is those originals are not meant to be changed; a new version can be made but it never really replaces the master. And there should only ever be 1 master copy. thus implies this branch should never be touched. But that is rarely the use case for the primary branch.

I like main for the primary branch's name; it doesn't imply anything more than "this is the primary source to use".

Collapse
 
icatalina profile image
Ignacio Catalina • Edited

You can create new masters out of old masters. Which is exactly what git does. Same for other types. You grab all the masters from recording a movie and produce a master for the actual movie. You edit it for the dvd version and you get the master for the dvd version...

The fact that it gets updated doesn't make it let of a master. Deployments get copied from there and can't (shouldn't) modify the code. And it is at any given time the source of truth for your project.

Having said that, I don't really mind how we call it. I'm not against changing the name. It is just a convention. If it was for me, we can call it potato 😅

Thread Thread
 
stevieoberg profile image
Stevie Oberg

I'm aware that you can do that; my point is that the terminology doesn't imply that for a lot of people, myself included.

When I think of a "master" copy, I think of the original manuscripts for something like the Iliad. We're not meant to change that copy because it serves as the source of truth for the Iliad story. Once you change it you have a new copy with a new "master" version that doesn't replace the old (unless it's a verbatim copy). In git though, that new version becomes the master copy.

But I'm glad you are open to change though, I actually don't see the full association with master/slave either tbh. I just don't think the name made much sense to begin with, thus if it also makes some people uncomfortable then there isn't much of a reason to keep it. 🤷🏻‍♀️

Thread Thread
 
icatalina profile image
Ignacio Catalina • Edited

I think the misconception comes from interpreting master as a single entity. The difference with the master for a book is that copies are meant to be the same book. If your book is a modified copy of the Iliad, it is a master for its own version of the Iliad. What your describe in git is not copying, is creating new Iliads. We add more stuff and create a new master for others to make copies of. Which is the most recent master.

The reason to keep master is cost mainly. Cost of changing all the tools, hours lost trying to figure out why some script doesn't work or why some tutorial doesn't make sense. EVERYTHING has a cost. Even keeping it has a cost, a different kind though. Is it worth it? I don't really know. This article is the first time I've encountered this concern, without digging a bit more I don't know if it is a shared concerned or just someone creating a problem from nothing... 🤷‍♂️

To reiterate, I'm not against the change. I just think it is good to understand NOTHING is free.

Collapse
 
aminmansuri profile image
hidden_dude

"production" also sounds clearer..

So you could have

development -> staging -> production

Collapse
 
mburszley profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
Maximilian Burszley

Except master isn't always production. Not every project has a production.

It's really ironic a white, French man decided his was the voice to push for this.

Collapse
 
aminmansuri profile image
hidden_dude

You don't need to agree with him..

But I'm more fascinated by the vehemence with which some people find it necessary to refute him.

If you don't like it.. fine.. don't do it.

Thread Thread
 
mburszley profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
Maximilian Burszley

It is important to refute him because it's ignorant and token and accomplishes nothing.

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt • Edited

On a deep thinking, there is indeed another way.

Stop using English for everything. (and stop being anglio-centric.) English is mostly widely-used by people who, in the past, tried colonialism and tried to find "helpers" around the world, anyway.

Collapse
 
damcosset profile image
Damien Cosset

OK, I've never thought about this before. You just blew my mind...

One of the things we never discuss is the language we use...

Wow. As a French speaker, I can't believe I never questioned once that... Thank you ❤️

Collapse
 
jrtibbetts profile image
Jason R Tibbetts • Edited

What alternative do you propose? What language would be widely understood and has never been used by an oppressive culture?

Collapse
 
dandv profile image
Dan Dascalescu • Edited

Please, let's not get ridiculous. There's no feasible alternative to English. I've been writing about this since 2008. English unites us, regardless of native tongue, ethnicity, skin color etc.

It's a terrible argument to say

"English was used 200 years ago for something bad, therefore we should stop using English"

By the same logic, we should stop using computers because computers were used to perpetrate billion-dollar hacks.

Thread Thread
 
kpruehss profile image
Karsten Pruehss • Edited

Spot on. You could even expand further on it.
Don't forget that IBM provided the logistic systems that were used to run Hitler's concentration camps.
Swiped a Master-card recently when shopping? How about Visa, thinking about borders here...or American Express, which could be argued makes references to the US railroad system, built in part by slave labor. Where should we stop?

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt

I think French and Esperanto have tried at some point, but failed.

The only alternative I think is possible is, Simple English. That is, English with limited words. However, there would still be things like black, white, and main.

It is hard to be politically correct and please everyone.

Thread Thread
 
jrtibbetts profile image
Jason R Tibbetts

You suggest French as an alternative to English, as if they’ve been somehow less colonial and oppressive throughout the ages?

Simple English isn’t a language. We’re programmers; our very work involves a lot of specialized terminology that wouldn’t come close to meeting the requirements of a “simple” English.

(And what’s wrong with “main”?)

Collapse
 
jmccabe profile image
John McCabe

English is the most spoken language in the world, and the 3rd in the number of native speakers. Computers, and most modern technology is derived from inventions created by English speakers, mostly native ones. That is not going to change any time soon.

Collapse
 
golfman484 profile image
Driving change

I assumed he was just being funny with such a ridiculous suggestion.

Thread Thread
 
gosukiwi profile image
Federico Ramirez

I don't think he got the memo, lol.

Collapse
 
fpolster profile image
Florian Polster

World class troll. Thanks for this 🤣

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt

That wasn't my intention, but it did indeed go further than I thought.

Collapse
 
golfman484 profile image
Driving change • Edited

I assume you're joking in which case: Classic! I love it.

Let's take this to its logical extreme where people who never owned a slave in their life are not able to use the only language they know how to speak: English, because some of their distant ancestors owned slaves. What about black people whose distant ancestors were actually slaves but only know how to speak English? Should they also stop using English?

The concept reaches ridiculously humorous outcomes in mere milliseconds so I think it's worth further exploration.

Maybe we should use French, Dutch, Portugese or Spanish... dang! They were all colonizers also...

A crazy thing I heard of recently is that in the 1600s the English enslaved hundreds of thousands of Irish (white) people also - sending them to the Carribean. They were actually worth only about 1/5th the value of an African slave for some reason - maybe they blistered up with sunburn and were in constant pain in the hot, sunny climate that they their skin had not evolved to deal with.

It was enlightening to realize that some white people were also slaves to other white people.

Ah, it's a strange, mixed up world we live in...

Collapse
 
bdwakefield profile image
Benjamin D Wakefield

Not using English for everything is going to be impossible. English is the language of business and like it or not connects the world. That doesn't mean that other languages are not important, valid, for viable; but it will be next to impossible to shift the entire world to a different language.

Collapse
 
ramong1145 profile image
Ramón Gallo

Ok, if you want it, then do it. No harm.
But you have to see that all the projects are being written and given support in english because from the languages that are spoken by the majority, is the easiest of them (Spanish and Chinese are not as easy as english).
Yes, we could use Esperanto, but not everyone knows it.
Think as a developer: how many of your libraries/frameworks you'll have to replace and refactor if the Original Developer decides to write the whole resource in their native language... And also, how many will stop being available because of this?
But as I said in the beginnning: you may do it to your own code, but you'll have serious issues when trying to look for some support.
Or, as Jason Tibbetts stated: what solution do you propose? This is causing more troubles, rather than giving a solution.

Collapse
 
jnareb profile image
Jakub Narębski

The Git Development Community is working to at least make the name of the main branch easily configurable, so in not so far future having "main" or "trunk" branch instead of current default of "master" from git-init / git-clone would be much easier.

Collapse
 
ben profile image
Ben Halpern

Flexibility like this is critical for the health of software development in general. IMO this is a good stress test on software maintainability in general.

Collapse
 
mburszley profile image
Maximilian Burszley • Edited

The Git Development Community is working to at least make the name of the main branch easily configurable

What's wrong with it now?

mkdir /tmp/git-init && cd $_
git init && git checkout -b main
git commit -m init --allow-empty
git branch -a
git log --oneline
Collapse
 
jnareb profile image
Jakub Narębski

As far as I remember, changing the default branch would be able to be done with command line parameter or a configuration variable

git init --default-branch=main

or

git config branch.default main
# ...
git init
Collapse
 
shaunagordon profile image
Shauna Gordon

Please tell me you're being facetious...

Thread Thread
 
mburszley profile image
Maximilian Burszley

Why would I be? It's as easy as specifying the branch name in your checkout command to change what your default is.

Thread Thread
 
shaunagordon profile image
Shauna Gordon

Because you asked what was wrong with a 7-step init process, in response to someone mentioning that the git developers are working on making it a configuration option.

Thread Thread
 
mburszley profile image
Maximilian Burszley

It's not a seven-step process, though, that was just a complete example for illustration. It's as simple as:

git init
git checkout -b main
Thread Thread
 
shaunagordon profile image
Shauna Gordon

Or, we can just do

git config --global init.defaultBranch main

once, and never have to worry about it again.

We also don't have to worry about alias syntax, which is terminal-type-dependent, and can include it in provisioning/dotfiles repos and it works regardless of the person's system. :)

Thread Thread
 
jnareb profile image
Jakub Narębski

This option was, as far as I know, not available at the time of writing the blog post in question, and possibly also when I was writing my comment.

Thread Thread
 
shaunagordon profile image
Shauna Gordon

It wasn't available yet (though it was already in the pipeline). I was responding to Max, whose response suggested that the addition wasn't necessary and the then-current workflow was sufficient.

Even if the latest release (with this config option) hadn't been out when I responded with the config, I still would have argued in favor of having it as a config option, with the same arguments of being able to set it once and not have to worry about terminal aliases, etc.

 
thefern profile image
Fernando B 🚀

Do as you please, this isn't Facebook. Is a friendly community. Sarcasm on a touchy subject isn't going to get you anywhere. About 90% of your comments are immature as hell, so therefore I rest my case.

Collapse
 
deaddoctor profile image
deaddoctor

The FAT32 partition should be changed as it is triggering for those struggling with body issues.

Collapse
 
golfman484 profile image
Driving change

Should we also stop talking about "THIN" clients because that might offend super models - and they have emotions too ... although you wouldn't think so judging by their emotionless facial expressions as they strut the catwalk :)

Maybe we should also ban the use of the word 'model' in software ... it can be taken out of context.

Collapse
 
goodevilgenius profile image
Dan Jones

I've been thinking about the name since this discussion recently started, and it occurred to me that there's another reason why master (as well as main, primary, trunk, etc.) aren't really appropriate for the default branch.

One of the main design intentions of Linus Torvalds while he was developing git is to be nothing like subversion. svn uses trunk, with the idea that everything else "branches" out from there. git is not like that. In fact, "branch" is a poor choice of words for git, because it implies that there is a trunk, however, in git, there is no trunk at all. There's nothing special about the default branch. It's just another branch. They just needed a name for the first branch. But they were thinking in terms they were used to, like in BitKeeper, or Subversion. So, they called it master, reasoning that it would be the primary branch. But, it's not the primary branch, it's just the first one.

And in hosted git repos, like GitHub, the "default" branch is simply whichever branch HEAD points to. That's what GitHub does when you change your default branch: it just points to whichever one you specify. And when you clone a repo from a remote source, unless you specify otherwise, your local HEAD will start whatever HEAD is on the remote.

People use git like that (with a tree-like branching pattern), though, so it works for most people. But not everyone uses git like that. There are plenty of projects that maintain multiple primary branches, mainly to keep development going on older versions.

So, with the idea that really every branch is just a branch, they should, ideally, be named according to their function. So, my suggestion is that the "default" branch would be prod, or production. That way, it's clear that this branch has production-ready code. If you follow the git flow style, this makes sense anyway. You do most of your work in develop and feature branches, and merge into prod when it's ready.

Collapse
 
daniero profile image
Daniel Rødskog • Edited

That way, it's clear that this branch has production-ready code

What if it's not code that I'm keeping in my repo? For example I kept my master principal thesis in git. At that time, still in school, I felt no connection to the word prod at all. I think the premise for this discussion is absurd, but if I had to pick a new word, it would have to be as generic as possible. I think main works well.

Collapse
 
goodevilgenius profile image
Dan Jones

"As generic as possible" would probably be "default", because that's all it is. It's the default branch.

It might be for production code. It might be for in-development code. It might be for documentation. It might be for something completely different.

Folks using git should choose a name for their first branch that accurately reflects what the branch is being used for. That way it's not ambiguous.

And if you're using it just for yourself, and not using it for collaboration, so it doesn't matter what you call it, call it whatever you want. It doesn't affect anybody else. It only has to have meaning to you.

Collapse
 
shaunagordon profile image
Shauna Gordon

What if it's not code that I'm keeping in my repo?

While "production" may not be a 100% accurate word (and is why different people have different ideas for the default name), the concept is still the same -- that's the rendition that's going to ultimately go to the final audience (be it client computers or bookshelves).

Weirdly enough, all of this disagreement could be solved by making the default branch name a config option...

Collapse
 
ben profile image
Ben Halpern

Super great post. I think this hits on all of it, and yeah the bitkeeper history is there, but also the existence of master/slave terminology in software in general sort of helps imply that even if git stopped explicitly saying “slave”.

Software needs to be flexible and evolve. It’s kind of the whole point.

Collapse
 
damcosset profile image
Damien Cosset

Exactly, our goal should be to change norms to make people feel more welcomed and to have a more inclusive environment. This is the least we can do.
In terms of low-hanging fruit, I think it doesn't get any easier.

Might not be much, might not do a whole lot, it's certainly not the last thing we should do, but it's so easy and effortless that it should be a no-brainer.

Collapse
 
bdwakefield profile image
Benjamin D Wakefield

I have never heard "slave" in discussions about source control ever; especially git. At least not until we decided we needed to change it.

I always thought of master as "law and gospel" in terms of this is the source of truth for the repository. Where the word originates or how it was used in what git was "built from" is not relevant, language changes over time.

The problem with lots of the suggestions, "unstable", "production", etc. They are all specific use cases for specific workflows. Master is not specific to anything but clearly states what the branch is for. Branching strategies in source control is an entire religion by itself.

I do think that "principle" as suggested in the OP is better... or "main", "root", "default"... but I still feel it is unnecessary to move away from a master branch. I won't enumerate all of the practical problems with moving away from master as many others already did a great job at that.

Collapse
 
codemouse92 profile image
Jason C. McDonald

You've done absolutely nothing wrong in bringing this up, so please don't apologize. Thank you for trying to advocate for positive change. It's everyone's responsibility, regardless of color, gender, or nationality.

Some of the negative responses you got on this thread are absolutely beneath the standard of conduct for DEV.

Please keep speaking up for diversity and inclusion! Next time you get attacked like this, don't hesitate to click the three little dots (...) and both Hide Comment and Report Abuse. You have the right to keep conversations on your articles healthy and inclusive...and that means you have the right to be intolerant of intolerance.

Collapse
 
cherylcline profile image
Cheryl Cline

Thank you for writing this tutorial.

Collapse
 
jasperhorn profile image
JasperHorn • Edited

First of all: I'm not disagreeing. I do believe that words have power and influence the way people think. I am not presenting an argument in the form of a question: I'm actually asking a question in an attempt to understand.

What is an oppressive metaphor?

It's people who oppress, not words, so it can't be a metaphor that oppresses. Maybe it's a metaphor that refers to a system of oppression. However, that can be said of a term like "landlord" as well, which does not seem to be a problem for most people. The main difference seems to be how long ago that system was in effect and how long it's been given time to take on a different meaning (of course, by not using the term because of its oppressiveness, we're not giving it any (more) time to take on a different meaning). Are these things that matter in determining whether or not a term is oppressive?

Maybe it has to do with whether or not people are bothered by a term. I mean, it makes a lot of sense to me to avoid using a term that bothers people. But for every term you will probably be able to find someone who is bothered by it, so you'll have to make it something like "a lot of people" are bothered by the term. But from what I've gathered, people seem to care more about the connection with slavery than whether or not a lot of people are bothered by this term.

Once again, I'm not saying that we shouldn't move away from terms like "master/slave". I'm not even saying that it's not an oppressive metaphor. I'm actually interested in your view as to what makes an oppressive metaphor or term.

Collapse
 
jabarrioss profile image
Jhonny Armando Barrios

I think that changing a word does not make any difference, actions make difference I live in a dictartorship and for over 5 years I used to work under conditions you could consider enslaving earning under 5$ per month for 13 hours of work while I was learning how to code and got my first job with a cheap laptop. I believe that if we can take actions to help people who live under real circumstances of slavery, we could make a difference, not changing the name of our branches for god sake

Collapse
 
spock123 profile image
Lars Rye Jeppesen

I commend you .. must have been awful..

Collapse
 
jabarrioss profile image
Jhonny Armando Barrios

Thanks, Yeah it was awful, but I'm grateful that it ended I'm still recovering physically after a year

Collapse
 
shaunagordon profile image
Shauna Gordon

It's not an either-or thing.

People can "take actions to help people who live under real circumstances of slavery" and change their branch names to something less inflammatory and more descriptive.

Collapse
 
aminmansuri profile image
hidden_dude

I applaud your positive intent behind this.

Oftentimes in tech we consider our industry as "advanced" and yet we haven't done enough to be inclusive. And yet our history has been far from perfect in this regard.

Collapse
 
damcosset profile image
Damien Cosset

Thank you! It's a very small step and the absolute minimum I can do. Hopefully, these little steps start a conversation and we will all learn and get better ❤️

Collapse
 
dandv profile image
Dan Dascalescu

Tech has done more than any other industry to be inclusive. Kids in Africa or India have $100 laptops where they can learn anything that we've put up online. Countless open-source software has enabled anyone, anywhere in the world, with absolutely no regard for race or ethnicity or anything like that, to do word processing and browse the Internet without paying anything to Microsoft. Crypto can liberate us from banks and government oppression (to talk about true oppression). Etc.

By being distributed over a medium where no names or faces are necessary, software is as inclusive as possible.

Collapse
 
devimposter1 profile image
devimposter • Edited

Yet changing a branch name is so hard?

Thread Thread
 
dandv profile image
Dan Dascalescu

The change is simple, but the implications are non-trivial and will cause far more pain than we think it may prevent.

Thread Thread
 
devimposter1 profile image
devimposter

Then maybe just do it on new repos going forward? I doubt I will go back and rename every repo I have going back ten years but I'm thinking for new projects why not? No one should be forced to do this but it's not a bad idea.

Thread Thread
 
devimposter1 profile image
devimposter

And BTW, I am 56 and was recording music back in the day on analog "master" tapes so I get what you mean by master tape or master pressing for vinyl but I have no problem using main or trunk as a branch either...

Thread Thread
 
gautamkrishnar profile image
Gautam Krishna R
 I'm thinking for new projects why not? 
Enter fullscreen mode Exit fullscreen mode

Let's say a person is new to open source, he/she searches google for tutorials about how he/she can contribute to open-source projects. All the tutorials will have the master mentioned. This will be really confusing for them. If they are new to open-source and computer science In particular, This will surely be a pushback for them.

Thread Thread
 
devimposter1 profile image
devimposter

Actually I would say if this is confusing for them they may want to look for another career... This is about as trivial as things will get for a developer. I'm sure in their Google search they will see a few results that discuss the renaming of branches for this reason. :)

Thread Thread
 
shaunagordon profile image
Shauna Gordon

Let's say a person is new to open source, he/she searches google for tutorials about how he/she can contribute to open-source projects. All the tutorials will have the master mentioned. This will be really confusing for them.

Because nothing ever changes and we don't have any references to old and obsolete and failed-to-launch tech anywhere, amirite?

Collapse
 
golfman484 profile image
Driving change • Edited

Does 'master' always imply a corresponding 'slave' and hence always have slavery connotations?

At school, with no people of African origin at the school, in each year we had a teacher who was referred to as "the year master" but nobody ever thought that it related to any slavery concept. We just thought of him as the dude that was in charge, of us, and we were definitely not his slaves.

In git I've seen 'master' branch used universally but never once heard of other branches being called or ever referred to as 'slave' branches by anyone, ever.

Too bad if anyone has ever conceived a "Masterplan".

It must hurt to be "MasterCard" right now... VISA just scored a free home run!

The only IT concept I have heard of where master/slave is used is hardware redundancy - e.g. database replication where there is a 'master' database with one or more 'slave' databases to which data is replicated.

I can see a definite issue with that usage. Perhaps that concept should be renamed 'origin/clone' - which is actually a much more accurate description in any case. A 'clone' database's sole purpose is to become a perfect clone of the origin database - which is actually not at all like a master/slave relationship. So even people who are not offended by the use of the master/slave term should be disturbed by it's inaccurate depiction of the concept the term is trying to identify.

Collapse
 
davealexis profile image
David Alexis

No. The word "master" does not always correspond to "slave". I have a Master's degree. That does not mean that I've made a slave of a subject. A master of a recording does not imply that there are slave recordings, but copies. MasterCard does not mean that it is for slave owners. Master plan just means it's either the main plan or a darn good one.

English is a strange language. One word can have many different meanings, and very different words can be spelt in the same say (e.g. to "lead" a group" or a "lead" pipe"). Let's not go overboard with a shotgun approach to censoring different words that happen to look and sound the same. The master/slave usage in tech is and has always been toxic and offensive. Let's just stop calling Jenkins worker nodes slaves. A git master branch does not have the same connotation.

Collapse
 
dmahely profile image
Doaa Mahely

I remember when I first heard this terminology, I couldn't believe it was a thing in software!
I think renaming master to main makes the most sense, since that's how it is explained anyway.

Collapse
 
dandv profile image
Dan Dascalescu • Edited

"Master" is a term from the recording industry. I'm not a native English speaker so it was strange to me too, but in American English "master" has been far more commonly used in the past 50 years to talk about vinyl records and CDs, or having a "Masters of Science" or being a "master of the guitar" than slaves. Words change meaning over time.

Collapse
 
shaunagordon profile image
Shauna Gordon

but in American English "master" has been far more commonly used in the past 50 years to talk about vinyl records and CDs...

Not in the computer industry.

Until the past decade or so, the "master/slave" terminology was alive and well and even the default meaning of "master" in this context, even if "slave" wasn't explicitly mentioned.

It was even engraved on hard drives until the early 2000s (until the early-mid 2000s, BIOS software would commonly look for bootloaders on any and all drives hooked up, unless jumpers on the physical drives were set to "master" and "slaves" -- or more accurately, the OS drive and data drives).

You can find the discussions had by several of the database organizations and adjacent groups about renaming the hub-and-spoke architecture from "master/slave" to something else.

Words change meaning over time.

They do, but in this case it's not a change of meaning. "Master" still means "overseer of subordinates" as one of its definitions.

The meaning, in this case, hasn't changed. The word is overloaded -- it has several definitions, not unlike overloaded methods in C# or Java (which is why the "Master of Science" thing is an absurd and bad-faith argument, because it's using a different definition of the word).

This overloading is actually an argument in favor of changing it, because there are many words to choose from that better describe the default branch and aren't overloaded -- both of which make the meaning more clear.

Collapse
 
elasticrash profile image
Stefanos Kouroupis • Edited

I think everyone agrees that changing might be the a right move (for other reasons). But none of the proof provided anywhere suggest the origins are truly proven, as far as I am concerned. Maybe the person that first committed that had a different notion altogether. Personally when it comes to other usages (databases) the references are clear. Here they are not, what the proof provides is that certain people are tempted to use it with the wrong context.

Collapse
 
fpolster profile image
Florian Polster

@damcosset just curious. Do you vouch for replacing the terms master record in music, master's degree in academia and the saying "easy to learn, hard to master" in gaming? Or is this limited to master branch?

Collapse
 
klausbert profile image
Klausbert

As English is not my native language, the usual main branch name has no other connotation to me, I don't even know what bitkeeper is, and I never found out someone having a problem with that, so I'll continue to use the standard "master" wording unless the repo owner uses whatever official denomination works better for it.

Collapse
 
martinmuzatko profile image
Martin Muzatko

The dense bullshit I read here on dev.to on a daily basis is overwhelming. We might as well ban chess, because it commonly comes with black and white figurines. Ok, so we exchange it with red and yellow... What? These are also culturally connected to some skin color tones? dang.. lets take triangles and circles but in all blue and hope that nobody is offended. What? That might offend obese people because they connect their shape with the shape of the figurines? And they don't want to have king and queen because that is transphobe? This is getting tricky. We might be able to ship a set of "kings and queens" and people can choose what gender or if any any of their playing inventory has.

Ugh. I hate to get myself in an argument like this one, but seriously I have no clue where to draw the line. People should stop taking themselves so seriously. Life is short, have fun.

Collapse
 
martinmuzatko profile image
Martin Muzatko • Edited

Oh how lovely..dev.to automatically adds a heart to my own posts, so I don't feel so lonely.. We raise a world where we only have "winners", "loved by everyone". The self implied facade we keep up to not crush our little helpless egos is mind-boggling.

Collapse
 
shaunagordon profile image
Shauna Gordon

So go to a different platform if it bothers you so much.

Thread Thread
 
martinmuzatko profile image
Martin Muzatko

Which one?
medium.com is abusing its authors free time and energy to make money out of them.
echojs.com is okayish. They try hard to not get flooded with ads.
hashnode.com and dev.to is full of political and SJW articles. Sprinkled in with array method articles and beginner articles.
And then there are author platforms that
hackernoon.com has decent content, but I can also more or less compare them to medium, when it comes to the money making machinery.

I'm best off looking for individual blog posters hosting their own website, because platforms are never going to be the solution. I am happy if bloggers are advertising their own products on their own website - as long as they do it decently.

Thread Thread
 
shaunagordon profile image
Shauna Gordon

Or just follow the individual people that you prefer to read. No one says you have to read every single thing posted on a given platform.

That said, LiveJournal and its ilk are still going strong. Wordpress.com has a lively community. The Mastadon network is probably bound to have something (and most people don't limit themselves to a single post for things, and if nothing else, it's a fantastic place for discovery). And, like you noted, a great many people have their own websites and aren't even on these platforms.

The point still stands, though -- no one's forcing you to stay here. If you don't like the content (or, as the case is with Medium -- which I agree -- the business practices), then "vote with your feet" and find somewhere that better fits what you're looking for.

Or hell, start your own platform for yourself and those whose values align with yours. Then you can set the rule, get the content you want, provide a service for your niche, and depending on how you go about it could even have it pay for itself or pay you (if you want).

Thread Thread
 
martinmuzatko profile image
Martin Muzatko

thanks for your input :) you are right.

Collapse
 
assertnotnull profile image
Patrice Gauthier

As per this creator's comment:
twitter.com/xpasky/status/12722807...
It's as "master copy" so it's a "solution" to a non-existing problem.

Also let me join this comment from a person that is targeted by this change.

Collapse
 
goodevilgenius profile image
Dan Jones

You linked to Petr Baudis explaining that he named it after "master recording", but you conveniently ignored the post earlier in the thread where he, himself, said that he is glad that it's being changed: twitter.com/xpasky/status/12714774...

I also have some doubt that he, all by himself, chose that name. Yes, he was part of the git core team at the time and made several commits to the code. But the particular commit that made "master" the default name for the first branch was made by Linus himself. And he probably had other reasons for choosing "master", regardless of what Petr was thinking.

Collapse
 
yhaskell profile image
Igor N. Dultsev

... And, as Linus himself is a Finnish guy, with English being not his first language, and himself being not from the American-raised culture, I'm pretty sure he wouldn't create this name to promote slave culture

Thread Thread
 
goodevilgenius profile image
Dan Jones

He might not have been aware at the time. That's totally reasonable. It's also possible that he was aware, and didn't care, because Linus is kind of a jerk.

Thread Thread
 
yhaskell profile image
Igor N. Dultsev

He might be kind of a jerk (he is, to be honest, although he's better now), but there is a difference between being a jerk and being a racist piece of shit. Also, racism is not that much proponent in Europe nowadays, and not a thing people have their minds on in general.

(disclaimer: personally I don't feel a connection between word master and slavery. for the first 16 years of my life master was an HDD you put at the end of your IDE cable.)

Thread Thread
 
goodevilgenius profile image
Dan Jones • Edited

Absolutely. To be clear, I was not trying to suggest that Linus is a racist. I was suggesting that he might be insensitive to those who are impacted by racism, but not that he himself is racist.

And again, I don't know if that's the case. I'm not trying to accuse him of anything in particular. It's completely possible that, if he chose the word, he chose it for no reason other than it was a familiar word to him, and it seemed reasonable, and he wasn't particularly concerned about it.

According to Petr Baudis, Petr himself chose the name. It's possible he made the suggestion to Linus, and Linus didn't care enough about what it was called and went along with Petr.

I'm not sure we'll ever know exactly how the name was chosen. It was 15 years ago. All the people involved in the development may not all remember exactly what happened perfectly.

But, in this discussion, it probably doesn't matter why it was chosen. More than that, what matters is what it means to people today.

Collapse
 
dandv profile image
Dan Dascalescu

Thanks for finding and posting that! It's an excellent point and I've reused it in my response. The OP doesn't offer any evidence of any black Git user actually being offended by the word "master". The problem may be completely imagined, but the pain caused by changing the word will be very real.

Collapse
 
jordan_rowland profile image
Jordan Rowland

Thank you for making the only legitimate comment to this ridiculous topic.

Collapse
 
florianrappl profile image
Florian Rappl

And what are we doing with orphan branches? I feel bad for somebody growing up without parents.

Furthermore, let's rename the default remote ("origin") to "mirror". I don't want to be categorized by "origin".

Let's just do that right!

Collapse
 
mikcat profile image
mikcat

Worst is to have a detached HEAD, many people died by guillotine...

Collapse
Collapse
 
chrismbytes profile image
ChrisMBytes

my-little-pony it is then

 
petteyg profile image
Gordon

SJW has never been used to refer to people who actually care, and I get the impression you don't really care either given you've latched onto the term "SJW" instead of the actual issue.

Collapse
 
intrnl profile image
intrnl • Edited

I honestly feel that it should be more than just moving away from slavery references, but also because these naming changes makes it more approachable or easier to understand for beginners and non-native English speakers as well.

I'm not a native English speaker in any way, and I find main or trunk easier to understand than master. It might be different for other people though, but I think that's just because they're accustomed to a certain word.

There's also another thing that can be done, let's say that thanks to all the complicated scripts, it makes it impossible for someone to move away from using master as a default branch name. I think that what they could do to alleviate this is by referring master to something else, we should push for that instead of flaming others 🙂

Collapse
 
dsommers profile image
David Sommerseth

Seriously, I know you seem to see this as "blowing up". But it does so for a reason. We all need to take a deep breath and get back to reality. If we start on this path of picking words which would not offend someone, we would really not have that many words to pick from. "Principal" can be just as offending to someone as "master". Git was not written during the time of slavery, so it's context to "master" and "slave" in a slavery context is just moot.

This is just a silly storm in a water glass.

Seriously guys, get a grip. (Oh sorry! I might have offended the women in the audience by saying that.)

Collapse
 
kustomdesigner profile image
Michael Hicks

Thank you.

Collapse
 
brian32768 profile image
Brian Wilson

Definition of master (Merriam Webster) 2a: one having authority over another : RULER, GOVERNOR

Definition of principal (Entry 2 of 2) (Merriam Webster again) 1: a person who has controlling authority or is in a leading position

...you've shown us how to replace the word "master" with a word that means "master".

Only "master" has more than one meaning. In this case, it's this one
5a: a master mechanism (see MECHANISM sense 1) or device
b: an original from which copies can be made
especially : a master recording (such as a magnetic tape)

Contextually using "principal" has less specific meaning than "master", since "master" in this context has nothing to do with slavery. I am willing to switch from using "master" because it's unimportant to me and it seems to matter to others, but the new word needs to be relevant and I don't want to change it again in 3 months because the new word is just as bad.

Collapse
 
brian32768 profile image
Brian Wilson

Probably not clear what I just wrote... I wish we could settle on a better word NOW but I prefer letting things find their own collective way. In a year no one will remember using master.

I used to be a build release engineer and part of my jobs was releasing the "golden masters". We used to have these round, flat things to hold data most of you are too young to know about...

Collapse
 
jmccabe profile image
John McCabe

Does anyone genuinely think removing "master", "whitelist", "blacklist" is going to make the world a happier place, rather than just making substantial numbers of people think it's just a load of nonsense? Is getting rid of master/slave in software engineering going to resolve the problems of modern slavery, and wipe away any historic wrongs that were done to some people over millenia?

Collapse
 
mburszley profile image
Maximilian Burszley • Edited

Does a random white developer from the UK really have any sway on the conversation on what makes a difference for black Americans? or a french white man making a post about renaming "master" in git?

They're bad analogies and can be seen as racially offensive. I think they're token gestures, however, to be renaming everything again (there was a wave of this a few years ago). GitHub still serves its ICE contract despite losing employees over it. MSFT and others still serve the US police agencies. Until things like that change, everything's still the same.

Collapse
 
jmccabe profile image
John McCabe

It's not just about Americans though, is it? USA isn't the only country that had slavery. As I said elsewhere, slavery has a history going back over thousands of years, including substantial periods of same-race enslavement. There remain substantial areas of the world where people are enslaving others of the same race, including Europe where "modern slavery" is rife, so treating such an analogy, taken out of context, as racially offensive is a hijack of its historical meaning.

Do you also believe we need to rename male and female connectors? Not use the term "mate" in relation to joining parts together, since these can be taken as gender offensive?

Where does all this end?

As for GitHub and ICE, that's a separate issue.

Thread Thread
 
yhaskell profile image
Igor N. Dultsev

USA is the only country that replaced slavery with racial segregation and Jim Crow laws, Cu Clux Clan (or however those fuckheads were named), gerrymandering as a strategy to devaluate their votes (when they actually got rights to vote) and a lot of other shit.

Thread Thread
 
spock123 profile image
Lars Rye Jeppesen

Uhmmm no.

Thread Thread
 
mburszley profile image
Maximilian Burszley

Yes, this issue IS just about Americans. You're being ignorant by thinking this is about generic slavery; look up "chattel slavery" and realize how much worse it was than any other form before it. The GitHub contract is not a separate issue. It is racism against South Americans who have been demonized by the president™ as "invaders" and other such language

Thread Thread
 
rightdroid profile image
Toomas Jaska • Edited

"Yes, this issue IS just about Americans."

Excuse me if I do come off as a little pushy, I merely want to offer a counterpoint to arguments I think I see flaws in. This one looks like the book definition of American exceptionalism - that issues there are inherently unique and of higher importance, and that global consciousness should prioritize fixing those. Not only is this untrue, you are marginalizing the histories and current issues of other nations. American race relations do not carry over to other countries. If git aims to be a global technology, then it makes no sense to implement changes based on the offense taken by a segment of population living in a culture space that is roughly 0.5% of github's userbase, country-wise.

"realize how much worse it was than any other form before it."

This is a very futile line of argumentation - oppression olympics, ie who had it worse. Do victims of deportation living in concentration camps score higher or lower in the slavery category? Why would it even matter?

Collapse
 
rightdroid profile image
Toomas Jaska

"Does a random white developer from the UK really have any sway on the conversation on what makes a difference for black Americans?"

Why are you concentrating on black Americans? Slavery has far deeper and wider history. Have you considered the serfdom in ex-Soviet countries? Why not?

It seems to me, whoever makes the most noise and acts most offended gets the power to force conventions on everyone. Not cool. As a skeptic, critical thinker and enthusiast of making decisions based on science, statistical and historic data, the reasoning present here offends me. But I do not expect any sympathy simply for taking offense. In fact it's irrelevant to the topic if I take offense, is it not? Maybe you can see where I'm going with this.

Thread Thread
 
mburszley profile image
Maximilian Burszley • Edited

Because I'm an American and the protests started in the US about racism against black Americans. This isn't "generic slavery protesting"

Thread Thread
 
rightdroid profile image
Toomas Jaska

We seem to get to the core of the issue. Changing "master" and other "problematic" words is a kneejerk reaction to the outrage of the day. It will solve absolutely nothing of importance, certainly not racism or police brutality - which AFAIK was actually what the whole catalyst incident was. And I, for one, think we should as a community think more globally.

If it's a race issue, then the ones in the US do not carry over to other countries.
If it's a slavery issue, you have more on your hands to sort out than black slavery.
If it's police brutality issue, I have no idea how it even relates to this thread.

Thread Thread
 
mburszley profile image
Maximilian Burszley

Changing "master" and other "problematic" words is a kneejerk reaction to the outrage of the day. It will solve absolutely nothing of importance, certainly not racism or police brutality - which AFAIK was actually what the whole catalyst incident was. And I, for one, think we should as a community think more globally.

I agree. I don't feel this change has any real effect.

Collapse
 
toddhensley profile image
Todd Hensley

The "main" is often the principal pipe used to collect sewage, so this could be very appropriate for a lot of repos.

Collapse
 
davealexis profile image
David Alexis

And that's the exact connotation of "master" in git branches. It is the main branch from which, and into which all other branches flow. It has nothing to do with master/slave.

Collapse
 
petteyg profile image
Gordon

Said PR department is exemplifying the worst stereotypical SJW. Again, words mean things. PR and SJW are not mutually exclusive terms.

Collapse
 
jingxue profile image
Jing Xue

I for one look forward to the day when every university stops awarding Master's Degrees. And what kind of messages are we teaching our children when people are still getting Master Plumber or Electrician licenses!

Oh and those jerks in Hollywood also should stop announcing "well we are releasing Star Wars again, ReMASTERed." (Speaking of Star Wars, they'd better re-dub all of them to get rid of all that "one master, one apprentice" nonsense.)

 
2colours profile image
2colours

Let me start with the important thing: you are not telling the truth, according to the very source (git log on the repository of git itself) you are reciting; see commit id 08dc26061f3ff9ee79e6cfda88f0c825b8730e54, and in particular, the absolute lack of any occurance of the word "slave" with regards to branches. It's not nice to do these bluffs, counting on the others having good faith for the statement being made, and not bothering to double-check it. :\

For the rest: let's just assume that you were right, as a thought experiment:

Okay, what if it turns out there is a slave card, a slave's degree, a slavepiece, and so on? Does one really just dig down into something that makes sense in good faith, in order to prove that there is something to be offended about? Has anybody even seriously considered what "master branch" is about or is this just a posteriori rationalization?

Also, what if it turns out that the whole master (as opposed to slave) terminology just comes from guild terminology, which in turn comes from being big/great? Excellent, we dug out that there is nothing to be offended about? If there is no politics, that could also be a sensible resolution.

This is the problem with the whole phenomenon. It's not "a bit overboard" but like three steps from common sense. "a bit overboard" is to look for offense when a literal tool, controlled by another tool, is called a "slave". To go ctrl+r over random brands and terms, then retrospectively try to explain the master/slave terminology itself into it, and then implying that this should be offensive and subject to virtue signalling, is much like living in a parallel reality. And these people expect the others to adapt to whatever they make up with this mindset.

Collapse
 
bizkut profile image
Hasanuddin Abu Bakar

I am a brown myself but bringing this racist and political shit to the development environment is kinda dumb and lame. Funny enough the white folks who are actually very interested to this movement. For me a brown personally, I don't give a damn.

Collapse
 
jenc profile image
Jen Chan

Thank you for this tutorial! I don't think something like this is going to stamp out racism in tech per se, but it's a thoughtful change and there's nothing wrong with accommodating perspectives of folks most of us don't come into contact with that regularly.

Collapse
 
dreadknight profile image
Dread Knight

This is silly. Up next: Rip Masters of the Universe and ban chess as well while at it xD
Heck, I'm making a turn based strategy game that's meant to be a modern alternative to chess and it doesn't uses the white/black paradigm anymore, but loosely the colors of the rainbow :D

Collapse
 
anthonytonev profile image
AnthonyTonev

Not enough for me. I think we will be fully pleased if all citizens of a country which once in its history had slaves, donates 90% of its salary to people like me, that live in a country that was enslaved a couple of times in history. Do that for like 50 years and then we will forgive you.

Collapse
 
v6 profile image
🦄N B🛡

Words are wise men’s counters, they do but reckon by them; but they are the money of fools

--- Thomas Hobbes, (1651), Leviathan (1651) Pt. I, Ch. 4, quoted by Steven Pinker in The Stuff of Thought (2007), p. 151

Collapse
 
jenc profile image
Jen Chan • Edited

There is absolutely nothing wrong with bringing this up and leading by example, speaking up about an issue and making the change to make our communities more inclusive. Certainly we can't speak for how all black people feel about this term, but this isn't what you're doing. As allies our responsibility is to educate our own community and it just so happens to be white men and the faction of those who are resistant to change and thinking from other people's perspectives came to dogpile. And sadly this is just one fraction of what outspoken black folks experience. But this is difficult work... and fights have to be picked. There are people who are genuinely interested to discuss and introspect why such a change matters or bothers them. And there's those who are so outraged at any suggestion of change, or just need to be right and pester nonstop.

You're not responsible for how they've reacted. And how you've responded has been generous, human and accomodating. I would also use this energy in your workplace in moments you see that are awry, if someone makes an oddly insensitive joke or is excluded from speaking or meetings, is ridiculed for not knowing something. This is great energy and we need to use it where it matters. Do not apologize and keep pushing!

In the comments I see a range of fragile pushback from centering oneself ("well this never existed in my culture so why should I have to change"), appeal to authority (the authority of black people who only share their point of view, or authority of the creator's non-racist intent), all-or-nothing equivalences ("how about we ban every word with "master" in it too?), trivializing the matter ("this is more political-correctness")... the list goes on. We can feel out when it is useful to engage and when not, because some of these people aren't actually here to talk. You don't owe them an apology at all.

Collapse
 
benenewton profile image
Ben Newton

I always thought "master" should be called "production".

Collapse
 
goodevilgenius profile image
Dan Jones

I absolutely agree with this, except in cases of repos where they don't use the default branch for production code.

There's plenty of repos that have a release or prod branch, and use master as their development branch.

Really, we should just call these branches what they are, and avoid ambiguous naming altogether.

Collapse
 
mehuge profile image
Mehuge

Lets not.

Collapse
 
nickgrim profile image
Nick Grimshaw • Edited

I think you're forgetting to remove master from origin after you've pushed principal; you'll want to do a git push origin :master.

Collapse
 
francisrod01 profile image
Francis Rodrigues

Why in the first reason did they call it master instead of main or default?

Collapse
 
sbeaury profile image
Sébastien Beaury
Collapse
 
damcosset profile image
Damien Cosset

Added as an update in the article 😉 Thanks!

Collapse
 
avallete profile image
avallete

Saw the title and I thought: "Oh, cool ! Some kind of new git flow I don't know."

Well nope.

I will not write a long argument on this question.

But I'm curious, what should we do with the etymology of the word "robot" ?

 
patarapolw profile image
Pacharapol Withayasakpunt

Truth about linguistics in medicine -- we are waging wars against (bacterial) colonies.

Collapse
 
thefern profile image
Fernando B 🚀

Based on your comment history. My spider tingling senses tell me you're a troll. And will be treated as such.

Collapse
 
5456qwe profile image
1214586

I like the word "master", and neither me or my team use it in a "racist" way.

 
dimasmagadan profile image
Dmitriy

Ok, you rename that poor master branch
But what you gonna do with this?
github.com/search?q=slave

Collapse
 
mjsarfatti profile image
Manuele J Sarfatti

I'd like to add my point of view, not in contrast to yours, but to further the debate.

First of all, I'm personally in favour of changing all software denominations such as "master/slave" and "blacklist/whitelist" to literally anything else that doesn't imply millions of people suffering.

I have a different opinion when we talk about Git though.

The word "master" by itself has a general meaning of "person (or, by extension, thing) with particular authority, knowledge or skills". This is paraphrasing Merriam-Webster.

A "master" can be a university degree, the original artifact from which copies are made, a master of kung-fu, a master of pottery, or an owner of slaves.

But this means that the specific connotation of "owner of slaves" is only there if the word "slave" is used in conjunction with the word "master" (or if used when talking of slavery).

In the case of Git, non-master branches are never referred to as "slaves". The concept in Git is entirely different. Yes, maybe the original inspiration came 16 years ago from BitKeeper using the master/slave terminology. Maybe it was just laziness. Maybe... we don't actually know. My feeling is that "master" was chosen to signify something different, as Git works with a different model (from my understanding). Additionally, even the link you provided isn't all that sure of its reconstruction (italic by me):

Why is that branch called master? Probably because BitKeeper uses
"master" for its main branch [...]

I've never in my life heard or read anything that used the master/slave metaphor to explain git.

My personal opinion is that it's too long of a stretch. I will not be changing the name of my Git branches for the time being (may change my mind in the future), but I will also avoid using the master/slave and black/white terminology in other fields or technologies where the reference to slavery is more explicit.

Just to be absolutely clear: I also don't see anything wrong in choosing to not name the main branch "master".

PS: In Italian, "hello" and "goodbye" are both translated to "ciao". "Ciao" has an interesting origin:

From Wikipedia:

The word derives from the Venetian phrase s-ciào vostro or s-ciào su literally meaning "I am your slave". This greeting is analogous to the medieval Latin Servus which is still used colloquially in parts of Central/Eastern Europe or the antiquated English valediction "Your Obedient Servant." The expression was not a literal statement of fact, but rather a perfunctory promise of good will among friends (along the lines of "at your service" in English). The Venetian word for "slave", s-ciào [ˈstʃao] or s-ciàvo, derives from Medieval Latin sclavus, deriving from the ethnic "Slavic", since most of the slaves came from the Balkans.

Collapse
 
damcosset profile image
Damien Cosset

I'm having a really difficult time understanding this line of reasoning. We, AT BEST, have a term that maybe originated from an oppressive term. And yet, we choose to keep it because: Well it's too much of a stretch, I'd rather keep it.

We, as developers, love to boast about naming, and how important it is. How is master an appropriate name to define this branch in git? Of all the definition of master I'm seeing, I don't see one that explains the naming of master. And I'll go ahead and say that it's too far of a stretch to justify it.

The truth is that this word implies the master/slave relationship. Maybe not for you, but the harm is real. Master/slave is still a used concept in technology. That's an oppressive term. By keeping master for no other reason than our little convenience, we expose people to this oppressive term, even when it is not explicit.

When harm can be done, we take the safest route and protect the most vulnerable.

Collapse
 
mjsarfatti profile image
Manuele J Sarfatti

I don't debate that master/slave is an oppressive term, but, honest question:

What do we do about "Master of Science"? What do we do about "master record"? What do we do about "master/apprentice"?

Thread Thread
 
damcosset profile image
Damien Cosset

Where did I say I wanted to abolish the word master altogether?

Thread Thread
 
mjsarfatti profile image
Manuele J Sarfatti

You said:

The truth is that this word implies the master/slave relationship.

I thought you meant the word master altogether, sorry if I misunderstood.

Thread Thread
 
damcosset profile image
Damien Cosset

I should have been clearer indeed, that's my bad. That can happen when 2 people exchange in their non-native language 😄

I did mean master in the context of the git branch.

Thread Thread
 
habereder profile image
Raphael Habereder

If it doesn't apply to "Master of Science" or other studies, why does it apply in the context of git? Where do we draw the line in this conversation?

Don't get me wrong, by all means, change it. The debate we are having is important to have I think.
I just don't really share the opinion, because I see technology as a non-political/-racial entity. IMHO politics should be kept out of technology as much as possible, but that is just me.

If I have to change hundreds of build-jobs, repo references and environments in all my clients projects, due to a political debate, that's where I actually draw the line and seriously have to ask for the ROI of this proposition.

Thread Thread
 
damcosset profile image
Damien Cosset

Technology is not neutral, nor is it apolitical, but that's another debate.

The problem I have with master in the context of git is because it most likely comes from the terminology master/slave ( see the sources ). And technology as a whole has a history of using the oppressive master/slave in our domain.

At the end of the day, you do what you got to do, but building a more inclusive environment means we have to do the work. That's a small step, and a very easy one. Other steps are more uncomfortable and require more work 😉

I don't care about the other contexts of the words because I have not researched them. If their use is inappropriate, I will educate myself and stop using them.

Thread Thread
 
habereder profile image
Raphael Habereder

Technology is not neutral, nor is it apolitical, but that's another debate.

Why is it not? A thing is just that, a thing. It has no opinion on anything. Why should we apply politics to a technology that is not political?

The problem I have with master in the context of git is because it most likely comes from the terminology master/slave ( see the sources ).

I'm sorry, but "most likely" is not definitely. I can find no word from Linus Torvalds about this. At this point, it is only speculation. I personally would speculate, it is the master branch, because it is the deployable branch and thereby holds authority over every other branch. That is the sole attribute a master has. Authority. Thereby the word master in context of git is apolitical and a sound choice.

But as I said, speculation, since there is no definite explanation by the developer of git.

At the end of the day, you do what you got to do, but building a more inclusive environment means we have to do the work. That's a small step, and a very easy one. Other steps are more uncomfortable and require more work 😉

Yet again I disagree. For a small project, yes, it's a small step and if people are more comfortable with it, go ahead, be my guest.
Now think about about something bigger. The git foundation joins in, replaces master with, I don't know, mainline maybe, and rolls that out in an update.
Hundreds of thousands of build-jobs and developer machines. Nuked into oblivion.

That is not a small step. That is something that can horribly go wrong and bomb whole companies if done wrong.

That is what I am getting at.
Political changes are never a small step. They always have implications and most of the time, pretty massive ones.

I don't care about the other contexts of the words because I have not researched them.

You should, because context matters in language.

Thread Thread
 
damcosset profile image
Damien Cosset

There is a chance it comes from master/slave. That's all I need. Because software, even if you believe it is apolitical, is used by real people, and more often than not, against real people. And software is build by real people. And if we don't take active steps to make sure the environment developers work in are 200% inclusive, the software is faulty and harm is done to those who are the most vulnerable.

That's not a chance I willing to take anymore. We have done enough harm in the tech industry. That's on us to change our industry and make it better. And to me, when I see how much backlash there is on a six letters word, when black people have said for years that this nomenclature is problematic... Well, it scares me.

I am a white man. Things are quite okay for me in this industry. For a whole lot of people, it is as shitty as it gets. When I listen to the experiences of those people, it makes me realize that everything is political and for them, everything has to be fought for.

It seems like a lot work for you, alright then. But, as I said, this is the low-hanging fruit. It's the least expensive thing we can do. Yeah, it might uncomfortable for you, but it might start something life changing for a lot of minorities in our industry.

Thread Thread
 
habereder profile image
Raphael Habereder • Edited

Alright, as for the first part, I absolutely agree. The drive to make Tech more inclusive is absolutely necessary. I fully support that.

But again, where do we draw the line?

Where do we stop? When is enough enough? Who defines we reached 200% inclusive?
If we are trying to build a utopia in technology, where everyone is, as you said "200% included", we are bound to fail, or endlessly spin in place.
Terms in one language more often than not mean something completely else in another. An example I was provided on a different site about this very same topic. Black in Spanish. Totally fine for spanish speakers, it implies a lot of bad things for a lot of other people.
Language is highly sensitive and contextual.

It seems like a lot work for you, alright then. But, as I said, this is the low-hanging fruit. It's the least expensive thing we can do.

Here I am bound to disagree. The least expensive thing to do, is accept that technologies like git are tools, and tools are just that. Something you use. That's it.

Yeah, it might uncomfortable for you, but it might start something life changing for a lot of minorities in our industry.

I have never stated it to be an uncomfortable change. I have stated "due to a political debate, that's where I actually draw the line and seriously have to ask for the ROI of this proposition".
That is it.

I would ask you to stay civil and on topic please. There is no need to assume that the topic and change would be uncomfortable to me, because that way you implicitly brand me racist. Which I am proud to say, I am most definitely not. I am just practical and ask "why do you think this is necessary", since it obviously isn't for many people.

Because software, even if you believe it is apolitical, is used by real people, and more often than not, against real people.

Yet again, context. Git is (I can think we can go as far as to claim it is proven), not made to hurt you or work against you in any way, so this argument doesn't apply here IMHO.

If you think git, or a term within it "might have a racist connotation", without any proof, all based on speculation, I have to and will question your line of thought as to why you think that is and why you assume people feel wronged by it.

Thread Thread
 
damcosset profile image
Damien Cosset

It ends when our industry is welcoming and inclusive for everyone... We might fail. No excuse to not try. We might pick the wrong battles. This is a small one, it often start like that. But at least something happens

Thread Thread
 
dandv profile image
Dan Dascalescu • Edited

I also haven't seen any sort of serious argumentation for the pros and cons of making this change. The "reasoning" I've seen so far has been along the lines of "master/slave" was once used to refer to evil things, therefore we shouldn't use the word "master" in Git. Nothing more than that, then we go straight into how to do something before even spelling out a convincing "why".

I don't find that one-line argument convincing at all:

  1. Words change meanings over time
  2. The argument is akin to implying that tools (which is what words are) can be inherently evil. By that logic, "computers were once used for evil (hacks etc.) therefore we should stop using them".
  3. I haven't seen any evidence of the word "master" being offensive to any black developers using git. On the contrary, see the screenshot from my response.
  4. There's no consideration of the implications of this change. What if it hurts far more people in far more practical ways (time lost, broken build processes, actual suffering due to staying up all night to fix a P0 caused by this rename etc.) than the possible sensibilities we think it might save of the people from point 3. above, for which no evidence was presented to even begin an ROI comparison?

Hopefully the reasons above may help explain the update from the OP:

People seem to push back on this, for whatever reason...

Thread Thread
 
habereder profile image
Raphael Habereder

Thank you for your comment. I was feeling like my view on things was way off the mark.
Though you definitely described it much better and more sensible in your comment :D

You have my gratitude.

Thread Thread
 
dandv profile image
Dan Dascalescu

Thank you for spelling out the implications and bringing up the ROI point, which I've included in my, ahem, main, reply to this discussion.

Thread Thread
 
habereder profile image
Raphael Habereder

I am honored to be a part of your well constructed reply!

Everything has a cost, most people seem to forget that. I don't even want to begin calculating how much this change would probably cost, even if it took only half an hour for the average project (which, let's be honest, is totally underestimated).
That's just the businessman in me.

Just don't quote me too much, I mostly blurt out my thoughts without the necessary filters for topics this sensitive. I would rather not drag you through the mud with me :D

Thread Thread
 
mosfetish profile image
mosfetish

Words do change meaning over time, and that's a very important point, but they also have different contexts, and the contexts in which master is and has been used over time are far greater in number than the master/slave context.

We have masters in many fields. sports and occupations. We use the word master in many situations, both social and technical, that have nothing to do with or have never had anything to do with the very narrow context of one person (master) owning another (the slave).

Add them up. How many uses of master are in use in language that have no relation whatsoever to the ownership of one person by another? I'm guessing it's 1000 to 1. Further, master is not derived from the master/slave context. Master exists independent of it.

And our minds should be able to operate independent of it, too. I find it wholly offensive that people are treated with such disdain that they must have their eyes protected from a combination of six letters that in the vast majority of contexts has nothing to do with master/slave.

One other point. This movement to simply remove words from the language is using the same strategy that government censors use to suppress free discussion. It's easier to simply eradicate words (or combinations of words) than it is to argue against the ideas they represent. The easy route is simply to ban. The more productive, and more moral route, is to challenge and discuss.

Collapse
 
cosmicsausage profile image
Alexis López

I respectfully disagree. If we had proof beyond reasonable doubt that the term originated from that context specifically, then I am all for it. But if it's only because "maybe" the term "master" in Git was originated from an oppressive term, then this change is definitely not the best way to move forward with the inclusion agenda that many people seem to have in the software community, and I believe that if the term did originate from something like that, it would have been changed long ago.

I think it is not our job to be offended by what we think other people should be offended by (the thing with the creator of Cyberpunk 2077 comes to mind). If people of a certain race are offended by something, then we should support them, but we should not assume the role of "being offended".

In short, if it ain't broke, don't fix it.

Collapse
 
mustafaanaskh99 profile image
Mustafa Anas

Interesting analysis. Agreed

Collapse
 
hellokyyt profile image
Kyle Harrison

I mean everything else in git is landscaping / nursery based

Branches, Leaves, Pruning, etc etc

Why not just take a note from svn and use "Trunk"?

Collapse
 
dimasmagadan profile image
Dmitriy

This is totally politics.

I believe, many of these people voting to replace 'master' from git use credit cards. And somehow they are quite ok to use MasterCard.

And that is something, that they use every day, and something, that other people see them use

Collapse
 
devimposter1 profile image
devimposter

Yet another person not "getting" it. It's not ever single word with master in it. It's the history of the connotation of master in Tech like hard drive and controller master/slave wording. Even though it looks like this is not the case in the original Git naming why not use something else? Simple change...

Collapse
 
dimasmagadan profile image
Dmitriy

Do we have slave branches in git?
It is just the only word, same as in mastercard, master's degree, master-whatever-else.

Thread Thread
 
devimposter1 profile image
devimposter

So did you even read my last reply? Anyway, name your branches whatever you want. I'm not sure why people are pushing back on this so hard. It's not that difficult to understand.

Thread Thread
 
dimasmagadan profile image
Dmitriy • Edited

Sure I did.
Let me put it in other words: there is no slave in git, 'master' in git not originating from an offensive "master/slave wording". It is just a single word same as in master's degree, mastercard, etc.
Something originating from 'master copy'.

Github competitor, Gitlab, was first to enrol into this renaming stuff. They've decided to change white-list and black-list terms. Well, ok, this could sound offensive.
Github had to act too.

I'm pushing on this, cause I see just politics here. this change will not improve anyone's life. There are other better things to worry about.

Some comments have been hidden by the post's author - find out more