The default git/GitHub branch name is oppressive terminology (more info). It is easy to change the branch name for a single repository or for new repositories. This script makes it easy to rename your default branch on GitHub repositories in bulk.
To install, run
python -m pip install rename-github-default-branch
Then, create a GitHub.com personal access token with the repo
permission scope and set the environment variable:
export RENAME_GITHUB_TOKEN=YOUR_PERSONAL_ACCESS_TOKEN
Then to rename the default branch to main
for a specific repository (you must have write access):
rename-github-default-branch -r dfm/rename-github-default-branch -t main
Or for all the repos that you own (excluding forks):
rename-github-default-branch -t main
You can also provide regular expressions to match against the repository name. For example:
rename-github-default-branch -t main -p "dfm/*" -p "exoplanet-dev/*"
To update your local repository, you can run the following:
git fetch origin main
git checkout -b main origin/main
git branch -D master
where main
is the name of the new default branch and origin
is the name of the git remote.
This script will not change the target for open pull requests when the branch is renamed and open pull requests will continue to point at the branch that they were opened on. It is possible to change the target branch in the user interface and it is possible that this could be automated using the API, but I have not experimented with that yet.