GitHub to replace master with main starting in October: What developers need to know

  • Technology
  • GitHub to replace master with main starting in October: What developers need to know

With GitHub stripping out divisive terminology, what will developers need to know to make sure this transition is seamless?

Image: GitHub

From the office of “long overdue,” another service is dropping the divisive “master” terminology from its technology. This time, it’s GitHub and the new nomenclature will shift from “master” to “main.” The reason for this change should be obvious, but for those that aren’t sure, it’s to rid the company of any holdover references to slavery and replace them with terms of inclusion that cannot be misconstrued.

This change across the tech landscape should have occurred long ago, but at least it’s finally happening. Starting October 1, 2020 all “master branches” will be called “main branches.” 

For developers who have been knee-deep in Git and GitHub for years, this change will take some time to get used to. Even if you know the change is the right thing to do (spoiler alert: it is), your fingers have been typing git checkout master for years. Now, you’re going to have to shift to git checkout main. “Git” used to it.

I would expect a lot of other technologies to follow this example, so devs will more than likely be, at some point, making similar changes to a number of the tools they use. But GitHub is different. GitHub is used by millions of developers, some of them working alone, but many of them working together. That means change is going to be global and project-wide.

SEE: Implementing DevOps: A guide for IT pros (free PDF) (TechRepublic)

What developers need to know about this GitHub change

Other than the change in terminology, how will this directly impact you? Let’s take a look.

First, GitHub has already implemented the following changes:

  • GitHub.com links that contain the deleted branch name “master” are already redirecting to “main.”

  • GitHub pages have been updated to deploy from any branch.

  • GitHub has added user, organization, and enterprise settings so developers can set the default branch name for all newly created repositories.

On October 1, 2020 newly created repositories will default to “main.” Existing repositories will have the same default branch they currently have, and the change will not impact your existing repositories. Users, organizations, and enterprises can opt out of this change at the following locations:

By the end of the year, all existing repositories will be migrated to the new naming convention. This comes with a particular set of challenges, including:

  • Open pull requests must be targeted to the newly named branch;

  • draft releases must be targeted to the newly named branch; and

  • branch protection policies must be transferred to the newly named branch.

GitHub’s intention is to ensure that, by the end of the year, all repositories will be able to seamlessly rename their default branch. That means when you rename a branch, GitHub will automatically retarget open pull requests and draft releases and move your branch protection policies. GitHub is also hoping to be able to redirect users who use either git fetch or git clone to move an old branch name to a new branch name.

You might think all of these changes should be a no-brainer and painless, but with over 40 million users, more than 100 million repositories, and at least 28 million of those repositories being public, this is a massive undertaking. One poorly planned move, and projects like the Linux kernel could find their code unreachable. Given that the whole of global enterprise depends on the Linux kernel, such an event could be disastrous, so GitHub doing this right is crucial.

How to migrate the default branch of your GitHub projects from master to main

As GitHub does its thing, developers can take steps to help out. The most important thing you can do is migrate the default branch of all your projects from “master” to “main.” I’ll show you how in a very generic sense (you’ll need to make sure you’re working with the project in question). 

Move the master branch to main with the command:

git branch -m master main

Push the newly-named main branch to GitHub (assuming that is your remote repository) with the command:

git push -u origin main

Point HEAD to main with the command:

git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main

Now you need to set “main” as the default branch for your project on GitHub. To do that, log in to your GitHub account, open the repository for the project, and click Settings | Branches. In the left sidebar, click Branches and then select Main as your default from the drop-down. Click Update and, when prompted, click I Understand. Now, back at the terminal issue the command:

git push origin –delete master

That should take care of it.

You might want to take this task on yourself; otherwise, you’ll find yourself dependent on the tools GitHub creates to make this happen automatically. Before you do anything, make sure to back up all of your work–you do not want to wind up losing your data from a branch rename–though you should always back up your work.

More work to do regarding divisive tech terminology

I hope every sector of technology follows GitHub’s lead and removes all divisive terminology. Projects like Go and Google’s Android and Chrome have made concerted efforts to make such changes happen. Although Kubernetes uses terms like “node” and “replicas,” as of June 2020, over 200 lines of Kubernetes code still contain references to “slave.”

There’s a lot of work to be done on this front, but technology is agile, and those responsible for creating it are forward-thinking. With one collective push, divisive terminology can be removed from the entire landscape. 

GitHub to replace master with main starting in October: What developers need to know

Developer Essentials Newsletter

From the hottest programming languages to the jobs with the highest salaries, get the developer news and tips you need to know.
Weekly

Sign up today

Also see

Did you like this article? You can read it and many others @ Tech Republic!

From The S3 News Community

Check out posts from our own content writers

FRESHEST

Here's the latest news

Kanye West has given Kim Kardashian a birthday gift she will never forget. The skims designer posted an Instagram video of a hologram made in her late father, Robert Kardashian Sr.'s, likeness, which she describes as a "special surprise from heaven." She...

Kanye West Surprises Kim Kardashian With a Hologram of Her Late Father

WASHINGTON — Joseph R. Biden Jr., plotting an ambitious presidency that would begin amid twin health and economic crises, is leaning on veteran advisers with high-level governmental experience rather than outsiders and ideological rivals to help guide him on subjects...

Joe Biden's Advisers Come from the Obama White House

Jack Wallen walks you through the process of installing an identity and authorization platform on CentOS 8. Image: CentOS FreeIPA is an open source identity and authorization platform that provides centralized authorization for Linux, macOS, and Windows. This solution is...

How to install the FreeIPA identity and authorization solution on CentOS 8

When reports emerged that the Falcons could trade quarterback Matt Ryan and wide receiver Julio Jones, they made sense at first glance. After all, why wouldn't the 1-6 Falcons consider trading veterans to start a rebuild process? In this case, there's...

Matt Ryan, Julio Jones trade rumors: Why it would be difficult for Falcons to trade two big contracts

Photography courtesy of Loewe.Parkas, colour-blocked knits and a convertible backpack are key pieces from today's launch. By Odessa Paloma Parker Date October 29, 2020 icon-facebook icon-twitter With its utilitarian design focus and use of upcycling, Loewe’s new Eye/Loewe/Nature offering brings...

Loewe Just Launched a New Upcycling-Focused Collection
Load More
Share via
Copy link
Powered by Social Snap