How do I rename a local Git branch?

Question

How do I rename a local branch which has not yet been pushed to a remote repository?

Related:

Answer

To rename the current branch:

git branch -m <newname>

To rename a branch while pointed to any branch:

git branch -m <oldname> <newname>

-m is short for --move.


To push the local branch and reset the upstream branch:

git push origin -u <newname>

To delete the remote branch:

git push origin --delete <oldname>

To create a git rename alias:

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

On Windows or another case-insensitive filesystem, use -M if there are only capitalization changes in the name. Otherwise, Git will throw a "branch already exists" error.

git branch -M <newname>

Make the current commit the only (initial) commit in a Git repository?

How to prune local tracking branches that do not exist on remote anymore?