version control - How do I rename a local Git branch?

ID : 9

viewed : 236

Tags : gitversion-controlgit-branchgit

Top 5 Answer for version control - How do I rename a local Git branch?

vote vote

96

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> 
vote vote

86

git branch -m old_branch_name new_branch_name 

The above command will change your branch name, but you have to be very careful using the renamed branch, because it will still refer to the old upstream branch associated with it, if any.

If you want to push some changes into master after your local branch is renamed into new_branch_name (example name):

git push origin new_branch_name:master (now changes will go to master branch but your local branch name is new_branch_name)

For more details, see "How to rename your local branch name in Git."

vote vote

75

To rename your current branch:

git branch -m <newname> 
vote vote

67

Here are the steps to rename the branch:

  1. Switch to the branch which needs to be renamed
  2. git branch -m <new_name>
  3. git push origin :<old_name>
  4. git push origin <new_name>:refs/heads/<new_name>

EDIT (12/01/2017): Make sure you run command git status and check that the newly created branch is pointing to its own ref and not the older one. If you find the reference to the older branch, you need to unset the upstream using:

git branch --unset-upstream 
vote vote

52

Rename the branch will be useful once your branch is finished. Then new stuff is coming, and you want to develop in the same branch instead of deleting it and create the new one.

From my experience, to rename a local and remote branch in Git you should do the following steps.

Quoting from Multiple States - Rename a local and remote branch in git

1. Rename your local branch

If you are on the branch you want to rename:

git branch -m new-name 

If you are on a different branch:

git branch -m old-name new-name 

2. Delete the old-name remote branch and push the new-name local branch

git push origin :old-name new-name 

3. Reset the upstream branch for the new-name local branch

git push origin -u new-name 

Top 3 video Explaining version control - How do I rename a local Git branch?

Related QUESTION?