master
Many communities, both on GitHub and in the wider Git community, are considering renaming the default branch name of their repository from master
. GitHub is gradually renaming the default branch of our own repositories from master
to main
. We're committed to making the renaming process as seamless as possible for project maintainers and all of their contributors. This repository is our up-to-date guidance on how and when to rename your default branch.
We're not the only organization in the Git ecosystem making these changes: there are upcoming changes in the Git project (statement, code change), as well as coordinated changes from multiple vendors.
We’re making changes to GitHub in a few phases, designed to cause as little disruption to existing projects as possible.
If you haven’t renamed your default branch yet, consider waiting until later this year. We’re investing in tools to make renaming the default branch of an existing repository a seamless experience for both maintainers and contributors.
master
to the corresponding link in the repository's new default branch.gh-pages
branch will still work the same as it always has, but now you can choose any other branch in your repository as the publishing source.git init
on the command line. Learn more about the new init.defaultBranch
setting in the Git 2.28 blog post.main
On October 1, 2020, any new repositories you create will use main
as the default branch, instead of master
. This change does not impact any of your existing repositories: existing repositories will continue to have the same default branch they have now.
You can opt out of this change at any time. To opt out, set the default branch for new repositories for your user, organization, or enterprise:
https://github.com/organizations/YOUR-ORGANIZATION/settings/repository-defaults
pagehttps://github.com/enterprises/YOUR-ENTERPRISE/settings/member_privileges
pagemain
is the most popular replacement for master
that we’re seeing across GitHub. We like it because it’s short, it keeps your muscle memory intact, and it translates well across most languages. We’re using main
for our newly-created repositories and for the repositories we’re moving now, like dependabot-core.
For existing repositories, renaming the default branch today causes a set of challenges:
By the end of the year, we'll make it seamless for existing repositories to rename their default branch. When you rename the branch, we’ll retarget your open PRs and draft releases, move your branch protection policies, and more - all automatically. And, we’re also looking into redirecting users who git fetch
or git clone
the old branch name to the new branch name (with a warning and instructions to update their local clone), so it’s easy for your contributors to move.