Command line tool removing all branches that have been merged to the current branch.
Supports dry runs and offline use.
It can be used to remove both local and remote branches.
Install globally:
npm i -g remove-merged-branches
And then you just call:
rmb
...or if you prefer verbosity, enter remove-merged-branches
Usage: rmb [options]
Removes merged branches locally and remotely
Options:
-V, --version output the version number
-b, --branch <branch> Base branch to compare others to (default: "HEAD")
-o, --offline Runs without doing anything to remotes (default: false)
--verbose Shows more output (default: false)
--dry-run Performs a dry run instead of removing branches (default: false)
-h, --help output usage information
First it clears out the local branches that have been removed on the remotes:
git fetch --prune
Then, it finds all local branches merged to the HEAD branch and removes them:
git branch --merged $(git rev-parse HEAD)
# Then calls 'git branch -d' on each merged branch
Then, it finds all remote branches merged to the HEAD branch and removes them:
git branch --remote --merged $(git rev-parse HEAD)
# Then call 'git push --no-verify --delete' on each origin and branch
Finally, it clears out the local branches that have been removed due to the previous action:
git fetch --prune
INFO Pruning branches removed on remotes
INFO Removing local branch feature/add-badges-to-markdown, feature/add-more-time-logs, feature/change-ci, feature/refactor-ssh-exec-cmd, refactor/extract-remove-undefineds
INFO No remote merged branches to HEAD found
INFO Pruning branches removed on remotes