Table of Contents
Introduction to git change branch name
Git uses branches to facilitate work progress by multiple programmers on a collaborated project. Git change branch name commands like
git branch and
git checkout are used by developers to correct wrong branch names in git. Upon assignment of responsibilities in git, each developer can independently make changes to codes without being held back by others.
Depending on the rising needs, you can choose to change a branch name or create a new branch for modifying your codes to serve the purpose. Since branches are an essential part of the git work division, knowing how to name and change a branch name is crucial.
git branch command is what you will use for creating branches and to change the name of a branch.
In this tutorial, we shall discuss steps that you can use to change a branch name in git.
Git change branch name workflow
Here we have a master branch from where we checked out (switched) to my-feature-branch. Later we changed the branch name from my-feature-branch to new-feature-branch:
Git change branch name syntax
We can use the following syntax to change the branch name:
git branch -m <oldname> <newname>
OR if you are already inside your old branch which you intend to rename then you can use:
git branch -m <newname>
Setting up the lab environment
It's vital that you set up a lab environment that you can use to practice your codes. For this tutorial, we will clone a remote project
change-b-name to our local workstation. We shall then practice using it to run the git change branch name exercise. I will be working with windows 10 pro and git version 2.32.0.windows.2.
Below is the output after running the
git clone command:
$ git clone https://github.com/J-Mulombi/change-b-name.git
Steps to git change branch name properly
Git employs the
git branch –m <branch name > command to change the name of a branch.
–m option allows you to edit the new name and pass it as the correct branch name. Below are the basic steps you can follow to change a branch name:
Step-1: Switch to the branch that you want to change the name in git
It is important to ensure that you are on the branch that you wish to change the name. You can use the
git checkout <branch name> command to confirm or switch to the desired branch for the name change process.
We shall demonstrate how to switch to a branch another using the example below:
First, let’s create a new branch
text-branch in the local repository
$ git branch text-branch
Next, we will run the
git branch –a command to view all the branches in our local repository as follows;
$ git branch -a * master text-branch remotes/origin/HEAD -> origin/master remotes/origin/master
From the output, we now have the new branch
text-branch displayed among the active repository’s branches.
Lastly, we shall then push the changes upstream as shown in the sample output below:
$ git push --set-upstream origin text-branch
While at this point, we realize that we have named the branch wrongfully and we need to change the branch name. How do you accomplish that?
First, let’s ensure that we are on the
text-branch before proceeding to the next step by running the
git checkout <text-branch> command:
$ git checkout text-branch Switched to branch 'text-branch'
Step-2: Change local branch name
To change the above branch
text-branch to the correct name
feature branch we shall run the
git branch –m <branch> command as illustrated below:
$ git branch -m "feature" $ git branch -a * feature master remotes/origin/HEAD -> origin/master remotes/origin/master
From the results, we have successfully changed the local
text-branch name to
feature. Note at this stage that we only changed the name of the local branch, and that doesn’t affect the name change remotely.
Step-3: Change the remote branch name in git
Now that we have changed the branch name locally, we should also push the same change to remote repository.
To proceed to change the
feature name remotely, we shall run the
git push origin :< old-branch-name> <new-branch-name> command as follows:
$ git push origin :"text-branch" "feature" Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 To https://github.com/J-Mulombi/change-b-name.git - [deleted] text-branch * [new branch] feature -> feature
Now, we also have the remote branch name
test-branch changed to
feature as shown in the output. Note that the above command will delete the
text-branch from the remote repository.
text-branchand you push the
featurebranch upstream like we just did, you will run into an error.
Understand also that at this point only the branch reference for the new name was changed in the remote, and not the changes committed in the branch.
Step-4: Update local changes/commits in the remote branch
You will need to run another step to push related changes/commits in the feature branch to the remote repository
change-b-name as follows:
$ git push origin -u feature
We successfully pushed the committed changes upstream. Now both the local and remote branches are up to date.
Let’s run the
git status command to confirm:
$ git status On branch feature Your branch is up to date with 'origin/feature'. nothing to commit, working tree clean
How to change the local branch name from “master” to “main” in git
To change the
local master branch name to
main we shall run the following process:
Using the local repository
change-b-name, we will first,
checkout master branch and then run the
git branch -m <master main> command.
$ git checkout master Switched to branch 'master' Your branch is up to date with 'origin/master'. $ git branch -m master main $ git status On branch main Your branch is up to date with 'origin/master'.
git status confirms the name change from master to main. Next, we shall proceed to make similar changes in the remote repository.
Before proceeding, understand that git will not allow pushing the name change upstream without first creating a remote branch named
main. Assuming that we are still on the
main branch, we will now push to remote the
main branch as shown below:
$ git push -u origin main
The above results confirm that we have a new remote branch main.
Next, we will delete the origin master branch to complete the process by running the
git push origin --delete master command.
$ git push origin --delete master To https://github.com/J-Mulombi/change-b-name.git ! [remote rejected] master (refusing to delete the current branch: refs/heads/master) error: failed to push some refs to 'https://github.com/Maureen-Mulombi/change-b-name.git'
We have run into an error!
The success of this step depends on the default set-up for the branch settings in your Github account. You will therefore require to change the default branch settings to main as shown in the screenshot below before running the
git push command again.
However, if your account has the default branch settings set at main, you will not experience such an error.
Now, we shall run the
git push origin --delete master command.
$ git push origin --delete master To https://github.com/Maureen-Mulombi/change-b-name.git - [deleted] master
It’s done! The master branch is successfully deleted.
How to erase a local branch from a local repository
To delete a local branch in git, we shall use the
git branch –d <branch name> command as demonstrated below:
In this example, we shall delete the local feature branch.
$ git branch -d feature warning: deleting branch 'feature' that has been merged to 'refs/remotes/origin/feature', but not yet merged to HEAD. Deleted branch feature (was 60b7918).
We have now deleted the local branch
feature as displayed in the output.
Remember that for you to run the process without errors, you should have the
feature branch upstream. Alternatively, you can apply the
git branch -D branch name command to forcefully delete the local branch even when there’s no upstream copy. That way you will avoid running into an error.
How to erase a remote branch from a git repository
To delete a remote branch in git, you will require to specify the remote branch name in the delete command as shown below:
$ git push origin --delete <branch name>
In this example, we shall delete the remote
tester branch in our
change-b-name remote repository as follows:
$ git push origin --delete tester To https://github.com/J-Mulombi/change-b-name.git - [deleted] tester
We have discussed the following topics about git change branch name:
- Introduction to git change branch name
- Steps for git change branch name
- How to change the local master name to main
- How to erase a local git branch
- How to remove a remote branch from a git repository