We work hard to create and add new features to our software by working with new Git branches. But after some time it can be quite a local or remote branch hell. We can remove or delete local and remote branches in different ways.
Switch To Another Branch
Before deleting a local branch we should change to the other branch. Generally, with a working branch, we may be using the local branch we want to delete. So as a first step we will switch to the new branch so we can delete the local branch.
We will print existing branches and currently active branch with like below.
$ git branch
Then we are currently on the branch named newversion
and in order to delete this local branch, we will change to branch master
. We will use checkout
command and provide the branch name.
$ git checkout master

Delete Local Git Branch
Now we can delete or remove our branch with the option -d
or --delete
. -d
is the short version of the --delete
. We will also specify the local branch we want to delete. In this example, we will delete the branch named newversion
.
$ git branch -d newversion

Force To Delete Local Git Branch with Unmerged Changes
If there are some minor problems like unmerged changes and the delete operation should be forced we can use -D
or --delete --force
. Actually -D
is an alias for the --delete --force
. In this example, we will forcibly delete the branch named com_support
.
$ git branch -D com_support

Delete All Local Branchs Not Presents In The Remote Repository
While working in a big project we can stick to the remote branches. In some cases, we may need to remove/delete local branches that do not exist on the remote repository branches. We will use the following command which will delete/remove all local branches that do not exist in the remote repository branches.
$ git branch -vv | grep ': gone]'| grep -v "\*" | \
awk '{ print $1; }' | xargs -r git branch -d
Delete All Local Branches Except Master
We can also use the following command in order to delete all local branches except the master branch. This will clean our home easily without much effort.
$ git branch | grep -v "master" | xargs git branch -D

Delete Remote Git Branch
We can also delete remove branches with the push
command. Because deleting a local branch won’t delete/remove the remote branch. In order to delete/remove the branch, we will also provide the remote repo name with the branch name we want to delete. We provide the repository name as git may work in a distributed manner where it can have multiple repositories. But generally, the remote repository will be origin
. In this example, we will delete the branch named test
from the remote repository named origin
.
$ git push origin --delete test
OR
$ git push origin -D test
Synchronize Branch List with The Remote Repository and Branches At The End
At the end of the local or remote branches, removal/deletion synchronizing is a best practice. We will use the fetch
git command with the -p
option which will remove any remove-tracking references that no longer exist.
$ git fetch -p
