Whether you use GitFlow, GitHub Flow or any other branch driven development strategy, you will inevitably end up with a local Git repository filled with branches you no longer need. Which is why it’s good to know the command to delete Git branches locally and permanently so they don’t pollute your local development environment.
How to delete local Git branches
To issue the command to delete a local Git branch, follow these steps:
- Open a Git BASH window or Command Window in the root of your Git repository
- If necessary, use the git switch or checkout command to move off the branch you wish to delete
- Issue the git branch –delete <branchname> command to delete the local branch
- Run the git branch -a command to verify the local Git branch is deleted
Git Error: Cannot delete branch
One rule of local Git branch deletion is that you cannot delete a branch that is currently checked out. Otherwise, you run into the ‘cannot delete branch’ error as you can see in the example below:
[email protected] /c/local/branch (main) $ git branch -a * main new-branch old-branch
[email protected] /c/local/branch (main) $ git branch --delete main error: Cannot delete branch 'main' checked out at 'C:/git/delete'
In the above example, the user tried to delete the main Git branch while the it was checked out, which caused an error. However, deletion of the local Git branches named new-branch 0r old-branch would run without error:
[email protected] /c/local/branch (main) $ git branch --delete old-branch Deleted branch old-branch (was 44a55a1).
Delete local Git branch command
The command to delete a local git branch can take one of two forms:
- git branch –delete old-branch
- git branch -d old-branch
The only difference is the fact that the second local branch delete Git command uses an abbreviated syntax. Both commands do the exact same thing.
Remove vs local Git branch deletes
It should be noted that when you delete a local Git branch, the corresponding remote branch in a repository like GitHub or GitLab remains alive and active. Further steps must be taken to delete remote branches.