Git is a popular version control system and an essential tool in a web developer's toolkit.
Branches are a powerful and integral part of working with Git.
In this article, you will learn the basics about how to remove local and remote branches in Git.
What are Branches in Git?
A branch is a pointer to a commit.
Git branches are a snapshot of a project and its changes, from a specific point in time.
When working on a big project, there is the main repository with all the code, often called
Branching allows you to create new, independent versions of the original main working project. You might create a branch to edit it to make changes, to add a new feature, or to write a test when you're trying to fix a bug. And a new branch lets you do this without affecting the main code in any way.
So to sum up – branches let you make changes to the codebase without affecting the core code until you're absolutely ready to implement those changes.
This helps you keep the codebase clean and organized.
Why Remove Branches in Git?
So you've created a branch to hold the code for a change you wanted to make in your project.
You then incorporated that change or new feature into the original version of the project.
That means you no longer need to keep and use that branch, so it is a common best practice to delete it so it doesn't clutter up your code.
How to Delete a Local Branch in Git
Local branches are branches on your local machine and do not affect any remote branches.
The command to delete a local branch in Git is:
git branch -d local_branch_name
git branchis the command to delete a branch locally.
-dis a flag, an option to the command, and it's an alias for
--delete. It denotes that you want to delete something, as the name suggests. -
local_branch_nameis the name of the branch you want to delete.
Let's look into this in a bit more detail with an example.
To list out all the local branches, you use the following command:
I have two, branches,
test2. I am currently on the
test2 branch as the
I want to delete the
test2 branch, but it is not possible to delete a branch you are currently in and viewing.
If you try to do so, you'll get an error that will look something like this:
So before deleting a local branch, make sure to switch to another branch that you do NOT want to delete, with the
git checkout command:
git checkout branch_name #where branch_name is the name of the branch you want to move to #in my case the other branch I have is master, so I'd do: #git checkout master
Here's the output:
Now I can delete the branch:
The command for deleting a local branch that we just used doesn't work in all cases.
If the branch contains unmerged changes and unpushed commits, the
-d flag will not allow the local branch to be deleted.
This is because the commits are not seen by any other branches and Git is protecting you from accidentaly losing any commit data.
If you try to do this, Git will show you an error:
As the error suggests, you'll need to use the
-D flag instead:
git branch -D local_branch_name
-D flag, with a capital D (which is an alias for
-- delete --force), forcefully deletes the local branch, regradless of its merged status.
But note that you should use this command should with caution, as there is no prompt asking you to confirm your actions.
Use it only when you are absolutely sure you want to delete a local branch.
If you didn't merge it into another local branch or push it to a remote branch in the codebase, you will risk losing any changes you've made.
How to Delete a Remote Branch in Git
Remote branches are separate from local branches.
They are repositories hosted on a remote server that can be accessed there. This is in comparison to local branches, which are repositories on your local system.
The command to delete a remote branch is:
git push remote_name -d remote_branch_name
- Instead of using the
git branchcommand that you use for local branches, you can delete a remote branch with the
- Then you specify the name of the remote, which in most cases is
-dis the flag for deleting, an alias for
remote_branch_nameis the remote branch you want to delete.
Now, let's see an example of how to go about deleting a remote branch.
To view any remote branches, you use this command:
git branch -a
-a flag (an alias for
--all) shows all branches – both local and remote.
I have two local branches called
test and two remote branches
-r, an alias for
--remotes, shows only the remote repositories.
I want to delete the remote
origin/test branch, so I use the command:
git push origin -d test
This deleted the
test branch in the remote repository named
origin/test remote repository is no longer there:
You now know how to delete local and remote branches in Git.
If you want to learn more about Git, you can watch the following courses on freeCodeCamp's YouTube channel:
- To learn how to get set up with Git, and for an overview of important Git commands and the typical git workflow – Git and GitHub for beginners - Crash course.
- To go more in depth on branches and learn how they work – Git Branches Tutorial.
Thanks for reading and happy learning!