- Notifications
You must be signed in to change notification settings - Fork19
🔥 Command-line tool to delete merged Git branches
License
hartwork/git-delete-merged-branches
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
A convenient command-line tool helping you keep repositories clean.
#pip install git-delete-merged-branchesIf you are using one of the distributions below, you can installgit-delete-merged-branches through the respective package manager, e.g.:
| Distribution | Command |
|---|---|
| Arch Linux (AUR) | yay -S git-delete-merged-branches |
| Debian GNU/Linux (>=bookworm) | apt install git-delete-merged-branches |
| Gentoo Linux | emerge -av dev-vcs/git-delete-merged-branches |
| Homebrew | brew install git-delete-merged-branches |
| MacPorts | port install py-git-delete-merged-branches |
| NixOS | nix-shell -p git-delete-merged-branches |
| Ubuntu (>=lunar/23.04) | apt install git-delete-merged-branches |
| Void Linux | xbps-install -S git-delete-merged-branches |
#git-delete-merged-branchesDo you want to run "git remote update --prune" for 1 remote(s): - originUpdate? [y/N] yDo you want to run "git pull --ff-only" for 1 branch(es): - masterPull? [y/N] yYou are about to delete 6 local branch(es): - improve-setup-py - issue-12-enable-ci-for-pull-requests - issue-5-fix-waste-of-one-second-per-service - keep-github-actions-up-to-date - refactoring-one - simple-ciDelete? [y/N] y6 local branch(es) deleted.You are about to delete 6 remote branch(es): - origin/improve-setup-py - origin/issue-12-enable-ci-for-pull-requests - origin/issue-5-fix-waste-of-one-second-per-service - origin/keep-github-actions-up-to-date - origin/refactoring-one - origin/simple-ciDelete? [y/N] yTo github.com:hartwork/wait-for-it.git - [deleted] improve-setup-py - [deleted] issue-12-enable-ci-for-pull-requests - [deleted] issue-5-fix-waste-of-one-second-per-service - [deleted] keep-github-actions-up-to-date - [deleted] refactoring-one - [deleted] simple-ci6 remote branch(es) deleted.
- Supports deletion of both local and remote branches
- Detects multiple forms of de-facto merges(rebase merges,squash merges (needs
--effort=3),single or range cherry-picks…leveraginggit cherry) - Supports workflows with multiple release branches, e.g. only delete branches that have been merged toall of
master,devandstaging - Quick interactive configuration
- Provider agnostic: Works with GitHub, GitLab, Gitea and any other Git hosting
- Takes safety seriously
Deletion is a sharp knife that requires care.Whilegit reflog would have your back in most cases,git-delete-merged-branches takes safety seriously.
Here's whatgit-delete-merged-branches does for your safety:
- No branches are deleted without confirmation or passing
--yes. - Confirmation defaults to "no"; plain
[Enter]/[Return]does not delete. git pushis used with--force-with-leaseso if the server and you have a different understanding of that branch, it is not deleted.- There is no use of
os.systemor shell code to go wrong. - With
--dry-runyou can get a feel for the changes thatgit-delete-merged-brancheswould be making to your branches. - Show any Git commands run using
--verbose.
When the repository is a fork(with an upstream remote and a fork remote):
- Make sure that release branches are tracking the right remote,e.g.
mastershould probably track original upstream'smasterrather thanmasterof your fork. - Consider keeping your fork's remote
masterup to date (usinggit push).
When using GitHub:
- You can make GitHubdelete branches of merged pull requestsfor you, to save
git-delete-merged-branchessome work on the remote side, if you like.
Utility collectiongit-extras provides asimple shell script namedgit-delete-merged-branchesthat competes for commandgit-delete-merged-branches when both software packages are installed.
To address this conflict you can:
- a) Invoke
python3 -m git_delete_merged_branchesinstead ofgit-delete-merged-branches - b) Invoke command
git-dmbinstead ofgit-delete-merged-branches - c) Control path resolution order through environment variable
$PATH - d) Invoke
git-delete-merged-brancheswith its absolute path.You can runwhich -a git-delete-merged-branchesto see where it's located.
Please report any bugs that you find.
Like this tool? Support it with a star!
About
🔥 Command-line tool to delete merged Git branches
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Uh oh!
There was an error while loading.Please reload this page.
Contributors9
Uh oh!
There was an error while loading.Please reload this page.