Git: how to rename a branch (both local and remote)?
I need to rename a Git branch both locally and remotely. What steps should I follow to ensure the branch is renamed properly in both places?
Renaming a Git branch both locally and remotely requires a few steps to ensure that the branch name is updated correctly in both locations. Here’s a step-by-step guide:
Renaming a Local Branch:
Switch to a Different Branch:
First, ensure you're not on the branch you want to rename. Switch to another branch:
git checkout main # or any other branch
Rename the Local Branch:
Use the following command to rename your local branch:
git branch -m old-branch-name new-branch-name
Renaming the Remote Branch:
Delete the Old Remote Branch:
Push the new local branch to the remote repository and delete the old remote branch:
git push origin ld-branch-name
Push the Renamed Local Branch:
Push the renamed local branch to the remote:
git push origin new-branch-name
Reset the Upstream Branch (Optional):
If you want to set the upstream tracking branch for the new branch, use:
git push --set-upstream origin new-branch-name
Clean Up (Optional):
If others are working on the same repository, let them know about the branch rename. They’ll need to fetch the new branch and delete the old one locally:
git fetch --prune
git branch -d old-branch-name # deletes the local reference to the old branch
By following these steps, the branch will be renamed both locally and remotely, and the changes will be reflected across all users working on the repository.