Does the term 'master' in git (the VC system) refer to slavery?

Solution 1:

Actually, in git the term master does refer to the slavery concept. See this discussion on removing the slavery concept from gnome where Bastien Nocera does a fine job of laying out all the details: https://mail.gnome.org/archives/desktop-devel-list/2019-May/msg00066.html

I'll re-iterate his arguments here in case the above link dies:

That the master branch in git refers to the slavery concept is not obvious, because there is no slave concept in git itself. However, if we look at the origins of git, we know that it was developed to replace BitKeeper. BitKeeper uses master as the name for its main branch, which is probably the reason why git does as well.

Now the question becomes, does the master branch in BitKeeper refer to the slavery concept? BitKeeper does have master/slave repositories, and repositories and branches are conceptually the same thing in BitKeeper. Therefore, yes it does refer to the slavery concept and given that git took the name from BitKeeper, so does git.

Solution 2:

The term "master" is often used in mechanics to refer to a device that controls other devices.

A common usage is master cylinder, which is a device that controls subordinate devices in a hydraulic system.

Another common use is master key, a key which will open multiple locks.

The word "master" is used in so many ways in English that I think there is no need to be concerned about the example cited in the question. So long as "master" does not refer to one person's relationship to others, there really is no concern about any past forms of slavery being involved.

Solution 3:

In Git, the analogy is not between master and slave but rather master and branch.

Here's a helpful picture: from https://gitbookdown.site/branching-git-branch.html

There are several facets that could tilt toward the master/slave analogy:

  • Like a slave, the branch is dependent on the master.
  • The branch is less prominent and does not get released into production code.

There are several facets that steer away from the master/slave analogy:

  • Unlike a slave, the branch starts out as an exact copy of the master.
  • The branch gets merged back into the master, creating a new master
  • Developers (a third party, and neither master nor slave) work on the branches independently and in parallel.
  • Developers meet and collaborate to merge branches and determine the best course of action when branches conflict

This ZDNet article tosses the notion back and forth:

Both Git and GitHub use the term "master" for the default version of a source code repository. Developers fork a version of the "master" to create secondary versions, add their own code to this default version, and then merge their changes back into the "master."

Most detractors and the explanation that often resurfaces in these discussions is that terms like master/slave are now more broadly used to describe technical scenarios than actual slavery and that the word "blacklist" has nothing to do with black people, but the practice of using black books in medieval England to write down the names of problematic workers to avoid hiring in the future.

So perhaps a nuanced answer to the OP's question is: While the evidence points away from a master/slave relationship, Git and many other usages of master are being re-examined, regardless.