Why GitHub renaming master is good
Tags: github, git
Published: 2020-06-15 08:00:29

Following the announcement by GitHub that they are working to replace `master` branches with `main` or similar (as covered by [ZDNet](https://www.zdnet.com/article/github-to-replace-master-with-alternative-term-to-avoid-slavery-references/)), I admit I had mixed feelings.

There's a lot to consider when undertaking such a task, and I imagine it wasn't something taken lightly when the decided to do it.  I'm not a GitHub user, so it doesn't impact me (I use [GitLab](https://about.gitlab.com)). Not firstly that it's going to cause a lot of things to break.  And that was my first thought.

Genuinely, my first thought was "That's going to cause a lot of problems with pipelines and builds", and got me a little angry that they would risk so much chaos just by implementing it.  I imagined the headache I would have if someone renamed the `master` branch of my projects without consultation or time to plan.  Going in to work on a Monday and seeing emails for build failures, release failures, merge failures, and all the associated problems.  I made it about me.

Fortunately, it was then time to shower and reflect on it more. The more I thought about it, the more I then worried that they weren't going to actually rename.  They couldn't possibly just stop things from working like that.  Surely it was just going to be an alias to keep current projects working.  Finally, the coffee kicked in and I realised that the issues it would bring directly aren't all that important.

I'm not fortunate enough to have my infrastructure set up using Ansible or anything cool like that to manage the configurations. At the same time, my infrastructure isn't big enough for me to worry that much about the time it would take to fix the issues.  I'd be looking at low single-digit hours, and could have everything fixed by lunchtime.  The time and productivity I would lose doesn't even constitute a rounding error when it comes to the suffering which was, and still is, suffered by the communities which politicians like to call "minority".

No, my biggest issue with the whole thing is that we're trying to sweep away the atrocities of the past by forgetting words have multiple meanings. The meaning of "master" is relational to the context in which it is used. I had never thought of Git's master branch as relating to any form of slavery of injustice. I'd always thought of it as meaning the master copy aka primary copy, main copy, or original.  Unlike database replication where master-slave always brought negative thoughts.

The issue, therefore, isn't that words have multiple meanings. It's that people are lazy and don't think about alternative meanings for words, and the connotations they have. I'll ultimately be changing my projects to remove "master" branches and rename them with something more appropriate.

It is worth noting that Git is 15 years old. People didn't consider, as deeply, the extra connotations words may have, and how they may offend. Times and outlooks change. Hopefully for the better.

## The good behind it

### Solidarity
By standing in solidarity with the protests around the globe, and working towards the renaming, GitHub are helping to legitimize the movement for equality and an end to racism. That's a brilliant move, and should be applauded.

### Inclusion
The development community prides itself on being an inclusive community, open to all. We absolutely must be in support of equality for all, and should not be adding barriers of discomfort by our naming conventions.

### Consideration
I firmly believe that doing this at such a high profile level will cause a lot, unfortunately not all, of developers to consider what they name things in future. Not just for branch names, but also with the likes of "blacklist" and "whitelist", as GitHub are also doing.

Whilst these words [don't originate from race](https://www.etymonline.com/word/blacklist), the sad truth of the matter is that people will see "blacklist" as being bad (which it is), and some of those will then see "black" as being bad, and apply it to skin colour.  That perpetuates racism, and can easily be avoided by considering the words used.

## Summary
There will always be people who resist change, and who are uncomfortable with this decision by GitHub. They will say that they have never thought about 'master' in git as referring to slavery and oppression. They will point out that "blacklist" doesn't relate to skin colour. They will find reasons to oppose the change because, ironically especially within development, people are reluctant to change.

The point isn't whether something was meant to have a negative connotation. It's that if it does, the "terminology not only reflects racist culture, but also serves to reinforce, legitimize, and perpetuate it" (https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6148600/).

By not changing and adapting with the times, we will perpetuate racism. We will create inequality and discomfort. We will fail to be an inclusive community.

We cannot let that happen.

It's not going to be quick or easy to make the changes, but we must make them.