DEV Community

Alessio Michelini
Alessio Michelini

Posted on

How to rename the master branch to main

While git hosting companies like GitHub are already setting the default branch to main for any new repositories since October 1st 2020, there are still a lot of repositories you own that still uses the master naming as the default branch.

For the reason why you should do it, I’ll point to this article "Why GitHub renamed its master branch to main" which probably does a better job than what I would try to do.

But it’s a very easy process, it requires only a few commands and a setting change in the GitHub repository.

Rename master to main

First thing to do is to checkout the master branch if you didn’t already:

git checkout master
# Also be sure you have the latest changes
git pull origin master
Enter fullscreen mode Exit fullscreen mode

Now you can rename the local branch with the following command:

git branch -m main
Enter fullscreen mode Exit fullscreen mode

But now this change is only in your local git folder, what you need to do next is to push this the remote, which is as simple as to run this command:

git push origin -u main
Enter fullscreen mode Exit fullscreen mode

Change the default branch

Now, at this point you have both master and main on your remote, and before you can delete the master branch, you need to go in the repository settings, go into the Branches section, and check what’s the default branch there.

Check default branch

If it’s master you will need to change that to your new main branch, as shown below:

Switch default branch

Once you have switched the default branch, you can safely delete the remote master branch:

git push origin --delete master
Enter fullscreen mode Exit fullscreen mode

And that’s it! You can say goodbye to the master branch for this repository.
Then it’s just rinse and repeat for all your repositories.

Top comments (3)

jonrandy profile image
Jon Randy 🎖️ • Edited

Although this response doesn't relate exactly to renaming branches (it relates to the use of the same terminology with respect to clusters), I think it is well worth a read:
master + slave
Original comment, and the post it is in reply to can be seen here

darkmavis1980 profile image
Alessio Michelini

I respect his opinion, but it's not the only opinion and I presume there will be other black americans that could have a different opinion about it. To be honest I don't know, I'm Italian and I get offended by people who mention to me Mussolini and laugh about it as it's some sort of joke, when it's really not a laughing matter for me.
But to stay more in the context of the webdevelopment, as github is setting main as the default branch, it doesn't change the purpose of this article, which is to standardize the name on every project, regardless if you agree or not about the changing of some words.