How can I rename a local Git branch?

git, git-branch, version-control

Solution

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>

Problem

How can I rename a local branch which has not yet been pushed to a remote repository? Related: - Rename master branch for both local and remote Git repositories - How do I rename both a Git local and remote branch name?

Original source

Related problems