How to rename default branch in Git and GitHub

Jan 10, 2022

2 min read


I'm currently maintaining a GitHub repo that is grown over the last year. It primarily contains all the example code that I create when working on React Native and Expo articles and tutorials.

Recently, I switched the default branch to main. Here are the steps I took. All of these commands execute inside a terminal window.

Start by moving the default branch locally using the -m flag.

GNU Bash icon

git branch -m master main

Above, master is the old branch name and main is the new branch name.

Set the new branch as the local default on the remote. By default, Git doesn't allow renaming a remote branch.

GNU Bash icon

git push -u origin main
# output
* [new branch] main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.

Set the current local HEAD branch to point to the new branch on GitHub.

GNU Bash icon

git remote set-head origin main

Now, go to the GitHub repo. Open Settings > Branches. Under Default Branch, click the edit button to switch to the main branch.


Now, go back to the terminal window and run the following command to delete the previous default branch name.

GNU Bash icon

git push origin --delete master
# output
- [deleted] master

That's it!

Next: Tamagui for React Native: Create faster design systems ➡️

Enjoyed this post? Sign up to my newsletter!

A periodic update about my recent blog posts and tutorials. Join 1300+ devs!

No spam, unsubscribe at any time!

Subscribe on Revue

HomeBlogNewsletterAbout meSpeakingEmail

©  2019-2022 Aman Mittal · All Rights Reserved