Branches can be renamed, for example, to fix a mistake in the branch name.
Local branches can be renamed easily. Renaming a branch simply changes the branch reference (i.e., the name used to identify the branch) — it is just a cosmetic change.
First, create the repo samplerepo-books
for this hands-on practical, by running the following commands in your terminal.
mkdir samplerepo-books
cd samplerepo-books
git init
echo "Horror Stories" >> horror.txt
git add .
git commit -m "Add horror.txt"
git switch -c textbooks
echo "Textbooks" >> textbooks.txt
git add .
git commit -m "Add textbooks.txt"
git switch -c fantasy master
echo "Fantasy Books" >> fantasy.txt
git add .
git commit -m "Add fantasy.txt"
git checkout master
git merge --no-ff -m "Merge branch textbooks" textbooks
The above should give you a repo similar to the revision graph given below, on the left.
gitGraph BT: %%{init: { 'theme': 'default', 'gitGraph': {'mainBranchName': 'master'}} }%% commit id: "m1" branch textbooks checkout textbooks commit id: "[textbooks] t1" checkout master branch fantasy checkout fantasy commit id: "[fantasy] f1" checkout master merge textbooks id: "[HEAD → master] mc1"
→
[rename branches]
gitGraph BT: %%{init: { 'theme': 'default', 'gitGraph': {'mainBranchName': 'master'}} }%% commit id: "m1" branch study-books checkout study-books commit id: "[study-books] t1" checkout master branch fantasy-books checkout fantasy-books commit id: "[fantasy-books] f1" checkout master merge study-books id: "[HEAD → master] mc1"
Now, rename the fantasy
branch to fantasy-books
. Similarly, rename textbooks
branch to study-books
. The outcome should be similar to the revision graph above, on the right.
To rename a branch, use the git branch -m <current-name> <new-name>
command (-m
stands for 'move'):
git branch -m fantasy fantasy-books
git branch -m textbooks study-books
git log --one-line --decorate --graph --all # verify the changes
* 443132a (HEAD -> master) Merge branch textbooks
|\
| * 4969163 (study-books) Add textbooks.txt
|/
| * 0586ee1 (fantasy-books) Add fantasy.txt
|/
* 7f28f0e Add horror.txt
Note these additional switches to the log
command:
--all
: Shows all branches, not just the current branch.--graph
: Shows a graph-like visualisation (notice how*
is used to indicate a commit, and branches are indicated using vertical lines.
Right-click on the branch name and choose Rename...
. Provide the new branch name in the next dialog.
