re: Github is replacing the word master to avoid slavery references. Deal with it. VIEW POST

re: everyone's negative reactions to this are so revealing. if it truly wasn't a big deal to you what the word means, then you wouldn't be opposed to ...

I’m opposed to the change for the following reasons:

  1. As stated by the author, Git doesn’t make use of the master/slave metaphor.
  2. A lot of systems integrate with Git and treat master as the default branch, by default. A mass change of master to something else will fragment the ecosystem.

By themselves, these reasons aren’t enough. If master in Git was based on a slavery metaphor, then I’d have no issue making an effort to update my repos. But it isn’t, so why bother breaking and fragmenting an ecosystem over it?

Some other things that could be offensive:

  • Thighmaster
  • Masterfoods
  • Master a musical instrument
  • Master of Arts Degree in African-American Studies

As for those complaining that it’s political correctness gone too far, they should grow up. Sometimes you have to tweak your language to live peacefully with the people around you. I just don’t see this is as one of those cases.


The same reasons could also apply to the USB specification, which instead uses master-slave references since 1996 (USB 1.0 release). Forcing the USB-IF (USB Implementers Forum) to rename "master" and "slave" respectively for that specific reason will start a new level of debate, not just whether the rename is necessary, but also whether the entire USB specification should be cancelled as it promotes "slavery" to the devices.

So yes, enforcing political correctness to the technology today can break everything because of a change that is made for the sake of change (without considering interoperability).


Exactly -- I have over 200 repos. I'm not about to go update them all.

Changing the default branch from master breaks a bunch of tools, most especially the ones which bridge git with other vcs systems (hg, perforce, svn, etc).

Does anyone have a problem with a "master copy of a record"? Does this mean that "becoming a master of your craft" is oppressive?

git's source implies the "master record" analogy for the master branch; in addition, there are two places where I could find the word "slave", both tests:

  1. a test where the author was clearly reaching for two other branch names which are copies of the original -- this could be easily rectified with a minor commit
  2. perl scripts which refer to pseudo-terminal slaves; and I guess those are gonna get it too.

I brought this up at work, in an open environment. The PoC that I work with don't object to the term. All recognise the giant PITA this is going to become, via knock-on effect.

Meanwhile, whilst we churn with such trivialities, the people who actually killed PoC when their mandate was to protect and serve, go about their business -- most still in the same positions of power. GitHub continues to service ICE. Futile gesture much?

On the other hand, I don't want anyone to feel oppressed or sad at work. If this really means so much to so many, fine, let's change it. I've only seen a handful of people originally upset about it tho and much instigation after the fact :/

What's also really interesting, imo, is that the most vocal people about this have been !PoC (that I've seen). See above: "Futile gesture much?"

And again, I say: I could be well wrong -- I can't possibly know how all people feel -- so if this really means that much, cool, let's do it. Until someone decides that main isn't offensive for some other reason.

I would think if they were good at what they do you wouldn't have to worry about that.

I assume you're referring to the tools?

If so, here's some more info:

Git can be used to bridge to other VCS backends. In other words, I can run git locally and get it to sync up to an SVN server. On SVN, the convention is that trunk is the "main" branch, where on git, that's always been master. In both cases. there's no trivial way to "ask" what the "main" branch is -- GitHub's setting, for example, pertains to how others raise pull requests against your repo, not how git sees things.

This may sound silly (why bridge?), so I'll recount when I had to use git as a bridge:

I was doing work for a client who used TFS as their VCS. And not the "git-backed" TFS you may have heard of these days -- the older engine, which, like SVN, requires you to be able to connect to the server to commit. Which I couldn't always do. So in that case, I have two options: accumulate changes into one massive commit when I can finally connect and have (a) terrible history and (b) make it much harder to move incrementally forward (and, by extension, incrementally back, eg when experimenting on a new feature).

So, in this case, I would use the git-tfs bridge to run git locally (so I can use all of the distributed features and have small commits), and push to the TFS remote when I was able to connect (eg when I was on-site).

When tools which facilitate this kind of behavior break, that's bad for a lot of people involved.

Add to the conversation the fact that the author responsible for naming master as such has said that he intended it in the sense of master copy (as I've been suggesting the intent appeared to be from the source) and we have a massive movement to rename something which will take time and effort, has knock-on effects and doesn't even address what it sets out to, let alone the really big problems that are out there.

I still maintain: let's change the name if it makes a lot of people unhappy, but let's be honest about its origins and the fact that it's non-trivial to do so and will break systems which rely on established conventions.

Interesting. Thanks for telling me this. I've known a few people who've had to use both git and plastic (I have zero experience with plastic) for their work. Where git is either going to github/bitbucket or staying on their machine and plastic going to the server. It was a bit convoluted on their part but they had to for their sanity or policy (mostly for sanity).

code of conduct - report abuse