How to rename a local and remote Git branch

📋 Table Of Content
In this article, we will learn how we can rename a git branch locally and remotely.
Sometimes while working on a project with git, we might make some typos while naming our branches on Github. And to fix the spellings of our branch we have to rename it.
So here are the steps you can follow to rename your branch locally on your machine or remotely on your git repository.
How to rename a local git branch?
If you are on the same branch that you want to rename:
git branch -m <new-name>
The -m
flag is the move command to rename any branch in git. You can also use --move
in place of -m.
If you are on a different branch then you can use this:
git branch -m <old-branch-name> <new-branch-name>
Suppose I am currently on master branch and I want to rename a different branch named branchTwo to branch-two then:
git branch -m branchTwo branch-two
How to rename a remote branch in git
If you want to rename a remote branch then we have to do the same process as above locally and then push the local branch and reset the upstream branch.
Let's say we have three branches in our repository.
Now I want to rename remote branch branchOne to branch-one locally first from master branch
git branch -m branchOne branch-one
Now we can push the branch with the new name to a remote repository like this
git push origin -u <new-branch-name>
Here, we will push the new-name branch: branch-one
git push origin -u branch-one
Once we push the branch we will see the this in the remote repo:
As we can see we have both the branch-one (new branch) and the branchOne (old branch) in the remote repo.
Now we will delete the old branch from the remote repository
git push origin --delete <old-branch-name>
Here, we will delete the old branch : branchOne
git push origin --delete branchOne
Alternative way to delete the old branch and reset the upstream branch in remote repo
There is an easy way to push and delete the old branch in one line.
git push origin :old-branch-name new-branch-name
If we take the above example then it will be like this
git push origin :branchOne branch-one
This code will delete the old-name remote branch and push the new-name local branch.
Next, you just need to reset the upstream branch for the new-name branch.
Just switch to the branch and type:
git push origin -u <new-branch-name>
Now the remote old branch will be deleted from the repository.