Efficiently Managing Your Git Repository: How to Delete Multiple Branches

I recently came across a problem during my summer thesis project: managing an increasingly cluttered Git repository. As the project went on, many different branches and experiments were created. This made the workspace messy and harder to use. It became important to clean up these branches to keep the project organized and make the repository work better.

In this blog post, I want to guide you through the process of deleting multiple branches in Git, both locally and remotely, to help you keep your repository organized and efficient.

Why Delete Old Branches?

Before getting into the how, let’s briefly touch on why we should delete old branches:

  1. Clarity : Reduces clutter, making it easier to find active branches.
  2. Performance : A cleaner repository can improve performance.
  3. Avoid Confusion : Prevents accidental work on outdated branches.
  4. Collaboration : Keeps the repository clean for team members.

Deleting Local Branches

To delete multiple local branches, you can use the following methods:

Step 1: List Branches

List all the branches to identify which ones you want to delete.

git branch

Step 2: Delete a Single Branch

To delete a single branch locally:


git branch -d branch_name

Step 3: Delete Multiple Branches

Use a loop in your shell to delete the branches. For example, to delete branches named feature1, feature2, and feature3 :

for branch in feature1 feature2 feature3; do
    git branch -d $branch
done

Note : The -d option will delete the branch only if it has been fully merged. To force delete, use -D.

Delete All Merged Branches

To delete all branches that have been merged into the current branch, use the following command :

 git branch --merged | grep -v '\*' | xargs -n 1 git branch -d

Deleting Remote Branches

Deleting branches on the remote server is done in a different way. Here’s how you can use the git push command to do it:

Step 1: List Remote Branches

To list all remote branches:

git branch -r

Step 2: Delete a Single Remote Branch

Use the following command to delete a single remote branch:

git push origin --delete branch_name

Step 3: Delete Multiple Remote Branches

To delete multiple branches, you can loop through them:

for branch in remote_branch1 remote_branch2 remote_branch3; do
	git push origin --delete $branch
done

Using a List :

If you have a list of branches in a file (e.g., branches.txt), you can delete them as follows:

cat branches.txt | xargs -n 1 git push origin --delete

Combining Local and Remote Deletion

To make the cleanup process more efficient, you can combine the deletion of both local and remote branches. This approach helps ensure a more organized repository.

Script for Deleting Both Local and Remote Branches :

branches=("branch1" "branch2" "branch3")
	for branch in "${branches[@]}"; do
		git branch -d $branch
		git push origin --delete $branch
done

Using Git Tools

Tools such as GitKraken, SourceTree, or integrated Git tools in IDEs like VSCode typically offer graphical interfaces for branch management. These interfaces simplify the process of selecting and deleting multiple branches.

Conclusion

Regularly deleting old branches in Git is important for keeping your repository clean and efficient, whether you’re working alone or with a team. This helps keep your workflow organized. Using the commands and scripts in this guide, you can easily delete multiple branches, both on your computer and online, to keep your Git repository tidy.

Hope this helps in keeping your Git workflow streamlined and productive! Keep coding!