JIYIK CN >

Current Location:Home > Learning > OPERATING SYSTEM > Git >

Delete all local branches in Git

Author:JIYIK Last Updated:2025/03/30 Views:

Old local branches clutter your local repository but provide no further value. You can delete all local branches at once with the help of this tutorial.

We script this task using commands such as grep, , xargsand for-each-ref. We show various options for different use cases.

We also provide a one-line quick hack for deleting all local branches at the end of the tutorial.


Verbose script to delete all local branches in Git exceptmaster

We write the following script to Git to delete masterall local branches except the branch.

git for-each-ref --format '%(refname:short)' refs/heads | grep -v "master\|main\|develop" |
xargs git branch -D

This script will delete masterall local branches except the branch, including unmerged branches.

Let's break down this script and see how it works.

  1. for-each-refIterate over all references in the repo. formatstring '%refname:short'Extract a short ref name from the iterable and refs/headspoint to them heads.

    We use a pipe to pass the output |of for-each-refto grepthe command operator.

  2. grepThe command searches the ref heads passed to it for matches to the expression string master\|main\|develop. This covers masterdifferent names for your branches - you might have named them mainor develop.

  3. grepThe -p option in the command -vis used to invert the selection. So it will only select those master\|main\|developbranches that do not match the expression - essentially, it selects masterall local branches except .

  4. Finally, xargsthe command gets all these selected branches and passes them as arguments to the command git branch -D. git branch -Dis the command that forcefully deletes all branches passed as arguments.

Detailed script to delete all local


-dModify the script to delete only merged branches using the option in Git

We can modify the above script to delete only the merged branches. We -dreplace the final -Doption with the option.

-dis a soft delete option that only deletes merged branches.

git for-each-ref --format '%(refname:short)' refs/heads | grep -v "master\|main\|develop" |
xargs git branch -d

Merge unmerged branches

We see first_branchthat is merged, but second_branchis not merged.

Delete only merged branches

Our modified script removes only the merged ones first_branch, but leaves the unmerged ones second_branch.


Deleting all local branches in Git using a simpler script

Some people may find the above script overly complex and overkill. We can use a simpler script to accomplish the same task.

git branch | grep -v "master\|main\|develop" | xargs git branch -D

git branchThis script replaces complex commands with simple ones for-each-ref.

Note that Git is not recommended for use in scripts git branch. But sometimes we can deviate from best practices to get a quick solution.

Smaller script to delete all local


Modify the script to delete masterlocal branches with names likemaster-prod

Sometimes, your repository might have masterbranches with names like . For example, some of your branches might have names like master-prodor .master-draft

"master\|main\|develop"We can modify the regular expression in the script from to "master$\|main$\|develop$"to achieve this function.

git branch | grep -v "master$\|main$\|develop$" | xargs git branch -D

The name of the branch is something like master prod

Delete branches with similar names like master and prod


Short script to delete all local branches in Git

We can pass some clever regular expressions to grepto shorten our script even further.

git checkout master
git branch | grep -v "^*" |xargs git branch -D

The expression represents all branches starting "^*"from the current branch ( ) . We did first , so our current branch is .*^git checkout mastermaster

Thus -v "^*"filtering out our current branch masterand deleting all other local branches.

Quick way to delete local branches


Single line hard delete command to delete all local branches in Git

Finally, as promised, we'll show you a one-line hard delete command for deleting all local branches in Git.

git branch -D $(git branch)

This command deletes all branches except the one you are on.

Single row hard delete

For reprinting, please send an email to 1244347461@qq.com for approval. After obtaining the author's consent, kindly include the source as a link.

Article URL:

Related Articles

Changing drives in Git Bash

Publish Date:2025/03/30 Views:56 Category:Git

This short article will discuss how we can use Git Bash to have a Unix-style command line environment in Windows operating system and run multiple commands in this terminal. Git Bash Git is a collection of command-line utilities created to

Adding a remote branch in Git

Publish Date:2025/03/30 Views:142 Category:Git

Git does not allow its developers to create new branches on remote repositories. But instead, we can push an already existing local branch, and after doing so, we can bring it to the remote repository using some Git commands. In every versi

Synchronize your local repository with a remote repository in Git

Publish Date:2025/03/30 Views:92 Category:Git

This article outlines the process of syncing your local repository with a remote repository. We will also see how to sync a GitHub branch with a remote repository on the command line. Synchronize your local repository with a remote reposito

Creating a remote repository from a local repository in Git

Publish Date:2025/03/30 Views:105 Category:Git

This article discusses the necessary steps to create a remote repository based on a local repository. This is ideal when you have a local repository that needs to be available on a remote or SSH-enabled server. Creating a remote repository

Removing the upstream repository in Git

Publish Date:2025/03/30 Views:177 Category:Git

This article will teach you how to delete an upstream repository in Git. We may sometimes need to delete or change the remote repository that we use with our local repository. To do this, we can use the Git command git remote . Removing the

Git remote add SSH

Publish Date:2025/03/30 Views:53 Category:Git

In this day and age, the most widely used version control system is Git, which is operated by most developers within a team structure. This is mainly used to increase code efficiency, no matter how big or critical the project is. In this se

Differences between Git Reset, Revert and Checkout commands

Publish Date:2025/03/30 Views:185 Category:Git

This article discusses the differences between the git reset , , git revert and git checkout commands. These are some of the most useful Git utilities that allow us to undo certain changes in our repository. It’s easy to get confused with

Git revert local commits

Publish Date:2025/03/30 Views:84 Category:Git

When a software engineer or a web developer uses Git, it is obvious that he pushes a lot of code and commits to the Git repository every day, and while doing so, the need to undo or revert a particular commit or a set of commits arises from

Deleting local and remote Git branches

Publish Date:2025/03/30 Views:146 Category:Git

Git comes into play in version control systems when you are working with a team and the entire team is making changes to the same code repository. Creating a new branch in Git is relatively easy than other version control systems and deleti

Scan to Read All Tech Tutorials

Social Media
  • https://www.github.com/onmpw
  • qq:1244347461

Recommended

Tags

Scan the Code
Easier Access Tutorial