Remove local branches which are no longer present in the remote git.
Because I'm tired of doing everytime git fetch -p
, git branch -r
, git branch
and keep comparing which branches are gone from the GitHub, but still available locally and doing git branch -D ${branch_name}
on one by one of them.
This command will compare your local branches with remote and will show you branches which are no longer available on remote but are still presented in your local repository. You can use it to view and to delete all (remotely) removed branches in one go using --prune
flag.
This command works without need to run git fetch -p
, but working network connection to your remote is required. If no connection can be established with remote repository, then local information about your remote will be used instead. If your local repository is not in sync with remote repository will it warn you about it.
$ npm install -g git-removed-branches
Please install package globally with -g flag, so that you can use it directly as subcommand of git, like this:
$ git removed-branches
It's also possible to use python, instead of node.js/npm package. Download git-removed-branches.py script, remove extension and place it inside your $PATH variable, so that you can use it directly as subcommand of git:
$ git removed-branches
$ git removed-branches
This command will look through the branches which are no longer available on the remote and will display them.
In case you haven't run git fetch -p
, it will warn you to do so.
In order to delete local branches use --prune
or -p
flag
$ git removed-branches --prune
If you have configured remote alias to something different then 'origin' you can use --remote
or -r
flag to specify the name of the remote. e.g., to specify remote to be upstream
you can use:
$ git removed-branches --remote upstream
If you get an error when trying to delete branches:
The branch {branch_name} is not fully merged.
you can force deletion by using --force
flag or use -f
alias
$ git removed-branches --prune --force