Last active
October 1, 2025 21:33
-
-
Save xtqqczze/047dd27ddc5bc5802e12d9a84a8f52e4 to your computer and use it in GitHub Desktop.
Delete all remote Git branches
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/sh | |
| # git-purge-remote.sh | |
| # Deletes all remote branches for a given remote, except HEAD and main. | |
| # Name of the remote to purge. Change if needed. | |
| REMOTE_NAME=origin | |
| # List all remote branches for the given remote, excluding HEAD and main. | |
| # Pipe the branch names to git push to delete them | |
| # xargs -r prevents git push from running if there are no branches | |
| git for-each-ref \ | |
| --format='%(refname:strip=3)' \ | |
| --exclude="refs/remotes/$REMOTE_NAME/HEAD" \ | |
| --exclude="refs/remotes/$REMOTE_NAME/main" \ | |
| "refs/remotes/$REMOTE_NAME" \ | |
| | xargs -r git push "$REMOTE_NAME" --delete |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment