---
title: Set default git branch to main
author: Yarmo Mackenbach
slug: git-main
date: "2020-06-25 11:37:43"
published: true
---

For a while, we've all been seeing the "switch git default branch from master to main" posts, the earliest I recall having been [written by Scott Hanselman](https://www.hanselman.com/blog/EasilyRenameYourGitDefaultBranchFromMasterToMain.aspx). I've been postponing the change for a bit, but it was [the post by Kristófer Reykjalín](https://www.thorlaksson.com/im-changing-the-default-branch-name-in-my-git-repositories-and-you-should-too/) that gave the required motivation to go out and just do it.

For new repositories, [Gitea](https://gitea.io) already has [the option to set the default branch name](https://github.com/go-gitea/gitea/pull/10803).

For exiting repositories, the [commands provided by Scott](https://www.hanselman.com/blog/EasilyRenameYourGitDefaultBranchFromMasterToMain.aspx) work perfectly:

```
git checkout master; git branch -m master main; git push -u origin main
```

Yes, a one-liner :) If you like to take things more slowly, here it goes:

```
git checkout master         # switch to master branch
git branch -m master main   # move existing master branch to main (keeping history)
git push -u origin main     # push the main branch to the server
```

If you use [Gitea](https://gitea.io), you should now go the repository's Settings > Branches and set the main branch as the default branch. Once done, you can now safely delete the obsolete master branch with the command below.

```
git push --delete origin master     # delete the master from the server
```

As for my website, here's the [commit](https://git.yarmo.eu/yarmo/yarmo.eu/commit/78e18c55c59c8e65e99013718cd42154ddb7ebd6) that completed the transition, making sure my CI/CD solution knows what to listen to.

---

## Update 1

Thanks to [Charles Pence](https://charlespence.net/) for reminding me to add the `git push --delete origin master` line.

---

## Update 2

Thanks to [Charles Pence](https://charlespence.net/) for reminding me that a Gitea branch cannot be deleted as long as it's the default.
