How do I rename a local Git branch?

If you want to rename a branch while pointed to any branch, do: git branch -m <oldname> <newname>

I don't want to rename a remote branch, as described in Rename master branch for both local and remote Git repositories.

How can I rename a local branch which hasn't been pushed to a remote repository?

In case you need to rename a remote branch as well:
How do I rename both a Git local and remote branch name?

✔️✔️✔️ Answer

If you want to rename a branch while pointed to any branch, do:

git branch -m <oldname> <newname>

If you want to rename the current branch, you can do:

git branch -m <newname>

If you want to push the  local branch and reset the upstream branch:

git push origin -u <newname>

And finally if you want to Delete the  remote branch:

git push origin --delete <oldname>

A way to remember this is -m is for "move" (or mv), which is how you rename files. Adding an alias could also help. To do so, run the following:

git config --global alias.rename 'branch -m'

If you are on Windows or another case-insensitive filesystem, and there are only capitalization changes in the name, you need to use -M, otherwise, git will throw branch already exists error:

git branch -M <newname>

Subscribe to Farath Shba

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe