用于删除已合并Git分支的命令行工具
项目描述
git-delete-merged-branches
一个方便的命令行工具,帮助你保持仓库整洁。
安装
# pip install git-delete-merged-branches
如果你使用以下任何一个发行版,你可以通过相应的包管理器安装git-delete-merged-branches,例如:
| 发行版 | 命令 |
|---|---|
| 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-branches
Do you want to run "git remote update --prune" for 1 remote(s):
- origin
Update? [y/N] y
Do you want to run "git pull --ff-only" for 1 branch(es):
- master
Pull? [y/N] y
You 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-ci
Delete? [y/N] y
6 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-ci
Delete? [y/N] y
To 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-ci
6 remote branch(es) deleted.
功能
- 支持删除本地和远程分支
- 检测多种事实上的合并形式(变基合并、压缩合并(需要
--effort=3)、单个或范围 cherry-pick... 利用git cherry) - 支持具有多个发布分支的工作流程,例如,仅删除已合并到所有
master、dev和staging的分支 - 快速交互式配置
- 提供者无关:与GitHub、GitLab、Gitea和任何其他Git托管一起工作
- 高度重视安全性
安全
删除是一个需要谨慎使用的锋利刀具。虽然大多数情况下 git reflog 会为你提供支持,但 git-delete-merged-branches 对安全性非常重视。
git-delete-merged-branches 为你的安全做了以下工作
- 没有分支在没有确认或传递
--yes的情况下被删除。 - 确认默认为 "否";直接按下
[Enter]/[Return]不会删除。 git push使用了--force-with-lease,因此如果服务器和你对该分支有不同的理解,它不会被删除。- 没有使用
os.system或 shell 代码出错。 - 使用
--dry-run,你可以感受到git-delete-merged-branches将对你的分支进行哪些更改。 - 使用
--verbose显示运行的所有 Git 命令。
最佳实践
当存储库是一个分支(具有上游远程和分支远程)时
- 确保发布分支跟踪正确的远程,例如
master可能应该跟踪原始上游的master而不是你分支的master。 - 考虑保持你分支的远程
master更新(使用git push)。
当使用 GitHub 时
- 你可以让 GitHub 为你删除已合并的拉取请求分支,这样可以在远程端为
git-delete-merged-branches节省一些工作,如果你愿意的话。
与 git-extras 中的 "git-delete-merged-branches" 名称冲突
实用工具集合 git-extras 提供了一个名为 git-delete-merged-branches 的简单 shell 脚本,当两个软件包都安装时,它会与命令 git-delete-merged-branches 竞争。
要解决这个问题,你可以
- a) 使用
python3 -m git_delete_merged_branches而不是git-delete-merged-branches - b) 使用命令
git-dmb而不是git-delete-merged-branches - c) 通过环境变量
$PATH控制路径解析顺序 - d) 使用绝对路径调用
git-delete-merged-branches。你可以运行which -a git-delete-merged-branches来查看其位置。
支持
请报告您发现的任何错误。
喜欢这个工具吗?用星标支持它!
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
git_delete_merged_branches-7.4.1.tar.gz (41.6 kB 查看散列)
构建分发
关闭
git_delete_merged_branches-7.4.1.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 81ca59d29f3d555c1c4885384f5be33b2a1e637bb8e01f64a8605e9a5f6db6bb |
|
| MD5 | b834ffe1db68a117a9ac87d9ddba21f5 |
|
| BLAKE2b-256 | 6009917d48f0b931475bf3f3a60c522db12db05411ea028cae2adcb8482e2334 |
关闭
git_delete_merged_branches-7.4.1-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | a676428bcd4d88560f8d8db98e7ac9da1a71ae71a235b54eec692f6434bedf62 |
|
| MD5 | db27e8c60ee449d5437ba0422d79bbe1 |
|
| BLAKE2b-256 | b5701d43f31c5f9d5f19d7519b805a8e0bdd92e374a21ac5a4f3fdd7a0840dc4 |