Home > Enterprise >  How to delete branches in specific folder?
How to delete branches in specific folder?

Time:08-22

I have some folders like feature and fix and etc. I want to delete localy all infromation about this branch, because they were already merged and I don't want to see them when call "git branch" or "git branch -r", so the quesation in the titile

CodePudding user response:

TL;DR

This should do the trick.

git branch -d $(git branch | grep "^  fix/")

Explanation

The idea of this is to provide git branch -d (delete branch if merged) with a list of all interesting branches, i.e. all branches that start with "fix/".

This list is generated by git branch | grep "^ fix/".
This command is made up of two parts:

  1. git branch: Lists all local branches (on seperate lines).
  2. grep " fix/": Only passes lines that begin with " fix/".

Executing a command cmd2 with multiple lines of output through cmd1 $(cmd2) causes the preceding command cmd1 to be executed once for each line. Therefore, all matching branches are deleted.

You can of course replace "fix/" with "feature/" or anything else.


Note: The two spaces at the start of the line are very important to match. The currently checked out branch is listed beginning with * . The asterisk (*) tries to match all files in the folder, leading to git trying to delete all branches named like files in the current directory.

  •  Tags:  
  • git
  • Related