5 simple steps that I tested and used to make the change in under 1 minute.
---
title: Change GitHub default branch from master to main
subtitle: 5 simple steps that I tested and used to make the change in under 1 minute.
author: Steven Mortimer
date: July 23, 2020
source: https://stevenmortimer.com/5-steps-to-change-github-default-branch-from-master-to-main/
snippet: https://jonlabelle.com/snippets/view/markdown/change-github-default-branch-from-master-to-main
gist: https://gist.github.com/jonlabelle/81206faafb56714d7499efa54eb8f3ff
notoc: false
---
1. Move the `master` branch to `main`
```bash
git branch --move master main
```
2. Push `main` to remote repo
```bash
git push --set-upstream origin main
```
3. Point `HEAD` to `main` branch
```bash
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main
```
4. [Change default branch](https://docs.github.com/en/github/administering-a-repository/managing-branches-in-your-repository/changing-the-default-branch) to `main` on GitHub
- Navigate in your browser to your [GitHub](https://github.com) repository.
- From the left rail, click **Settings** -> **Branches** and change the default branch to `main`
5. Delete `master` branch on the remote repo
```bash
git push origin --delete master
```
## Updating a local clone after a branch name changes
After you rename a branch in a repository on GitHub, any collaborator with a
local clone of the repository will need to update the clone.
From the local clone of the repository on a computer, run the following commands
to update the name of the default branch.
```bash
git branch -m OLD-BRANCH-NAME NEW-BRANCH-NAME
git fetch origin
git branch -u origin/NEW-BRANCH-NAME NEW-BRANCH-NAME
git remote set-head origin -a
```
Optionally, run the following command to remove tracking references to the old
branch name.
```bash
git remote prune origin
```
> Source: [GitHub: Updating a local clone after a branch name changes](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch#updating-a-local-clone-after-a-branch-name-changes)
---
To [initialize](https://git-scm.com/docs/git-init#Documentation/git-init.txt---initial-branchltbranch-namegt) a new Git repository
and set the default branch to `main`:
```bash
git init --initial-branch=main
```
---
- Source: [Steven Mortimer, 5 steps to change GitHub default branch from master to main](https://stevenmortimer.com/5-steps-to-change-github-default-branch-from-master-to-main/)
- Snippet: <https://jonlabelle.com/snippets/view/markdown/change-github-default-branch-from-master-to-main>
- Gist: <https://gist.github.com/jonlabelle/81206faafb56714d7499efa54eb8f3ff>