15.4. Git Branches¶
15.4.1. Branching in Git¶
So far this book has talked about Git’s ability to store different versions of a codebase in time. What if you and a fellow programmer on separate features for the same codebase? What if you want to try something new in your code, but you don’t want to break your current code? This is where branches can be useful.
A branch is a contained copy of the codebase. Any code written in a branch will not interfere with the original codebase. Many programmers use branches to fix bugs or add features to a codebase. Branches enable you to share work between programmers. They provide each programmer with code in their own branch, allowing more people to work on the code at once. Branches allow for changes to an already functional codebase.
In the previous section, when checking the status, the top line was On branch main
.
The main branch is the default branch of the repository.
Many programmers keep the live version of their code in the main branch.
For that reason, complete any major work in a new feature branch, so it doesn’t impact the live software.
15.4.2. Checking on Your Branches¶
A quick way to check on your branches is to use the command git branch
.
This will display a complete list of your branches.
There will also be some visual cues to let you know which branch you are on.
This could be a unique color or an *
; it depends on the terminal.
Before you start coding, run a
git status
or git branch
to make sure you are in the right place.
Even if you haven’t added any branches yet, you can still use this command.
Example
Students-Computer:~ student$ git branch
* main
Students-Computer:~ student$ git status
On main branch
15.4.3. Creating a New Branch¶
You are on main
and you want to start building a new feature in a new branch.
Your first step would be to create a new branch for your work.
To create a branch, the command is git checkout -b branch-name
.
By using this command, not only is a new branch created, but also you switch to the new branch.
Students-Computer:~ student$ git checkout -b update-branch
Students-Computer:~ student$ git branch
main
* update-branch
15.4.4. Switching to an Existing Branch¶
If the branch already exists, you may want to switch to that branch.
To do so, the command is git checkout branch-name
.
Example
Students-Computer:~ student$ git checkout main
Students-Computer:~ student$ git branch
* main
update-branch
15.4.5. Renaming a Branch¶
Sometimes you might want to rename a branch. You can do that in a few ways.
While we are currently on our main
branch, let’s rename update-branch
to array-update
.
Example
Option 1 allows you to rename a branch from another branch.
Step 1: If not on
main
, checkout yourmain
branch:git checkout main
.Step 2: You will then use the following command:
git branch -m old-name new-name
Students-Computer:~ student$ git checkout main
Students-Computer:~ student$ git branch
* main
update-branch
Students-Computer:~ student$ git branch -m update-branch array-update
Students-Computer:~ student$ git branch
array-update
* main
Ta-da! Do a quick branch check to verify your changes.
Example
Option 2 renames a branch while on that branch.
Step 1: Checkout the branch you want to rename:
git checkout old-name
Step 2: Use the following command:
git branch -m new-name
Students-Computer:~ student$ git branch
main
* update-branch
Students-Computer:~ student$ git branch -m pos-neg
Students-Computer:~ student$ git branch
* array-update
main
Remember, that names are up to you. Create branch names that will help you remember the branch’s purpose.
15.4.6. Check Your Understanding¶
Question
What is one reason for creating a branch in Git?