
原站网页截图,页面可能随时间更新。
git-delete-merged-branches 面向 Git 仓库维护工作,帮助用户找出已经合并的分支并进行清理。它支持同时处理本地分支和远程分支,也能应对不同的合并方式与多个发布分支场景。执行删除前,工具会展示待处理分支并要求确认,用户可以先查看预期变更,再决定是否继续。
用途与适用场景
该工具主要用于清理 Git 仓库中已经完成合并、后续不再需要的分支,减少长期积累的本地和远程分支。它适合个人项目、团队仓库以及需要维护多个发布分支的开发流程。对于同时使用 master、dev、staging 等分支的仓库,可以设置为仅清理已经合并到全部指定分支的分支。工具不依赖特定代码托管平台,可用于 GitHub、GitLab、Gitea 以及其他 Git 托管服务。
准备与上手
使用前需要准备 Git 仓库环境,并安装 Python 版本不低于 3.10 的 git-delete-merged-branches。官方提供 pip 安装方式,也列出了 Arch Linux、Debian GNU/Linux、Gentoo Linux、Homebrew、MacPorts、NixOS、Ubuntu 和 Void Linux 的安装方式。进入目标仓库后,运行 git-delete-merged-branches 即可开始检查。工具会先询问是否执行远程更新与清理,并根据仓库状态询问是否执行快进式拉取,随后列出准备删除的本地和远程分支。
主要功能
工具能够删除本地分支和远程分支,并识别多种实际合并形式,包括普通合并、变基合并、压缩合并以及单个或一段范围内的 cherry-pick。压缩合并识别需要使用 --effort=3。它会利用 git cherry 判断相关提交状态,并支持包含多个发布分支的工作流。交互式配置会在操作前展示远程、本地分支以及拟删除的分支数量,用户可逐步决定是否继续。
安全控制与操作提示
删除操作默认需要明确确认,直接按 Enter 或 Return 会按默认的否处理;也可以使用 --yes 跳过确认。使用 --dry-run 可以预览工具将要进行的变更,使用 --verbose 可以查看执行的 Git 命令。删除远程分支时,工具使用 git push 配合 --force-with-lease,以避免本地与服务器对分支状态理解不一致时直接删除。对于包含上游远程和派生仓库远程的 fork,发布分支应跟踪正确的远程分支。
限制与使用注意
这是一个面向开发者的命令行工具,使用时需要理解 Git 分支、远程仓库和合并状态。删除分支属于不可轻率执行的操作,即使工具提供确认、预览和安全推送机制,也应在确认列表后再继续。系统中如果同时安装了 git-extras,可能出现同名命令冲突;此时可改用 python3 -m git_delete_merged_branches 或 git-dmb,也可以检查 PATH 中的命令解析顺序。当前项目标注为 Beta,并采用 GPLv3 或更高版本许可证。
该工具还依赖本机已有的 Git 仓库及远程配置;不同仓库的跟踪关系会影响候选分支判断。官方特别提醒,fork 场景下应确保 release 分支跟踪正确的上游远程,并考虑及时更新派生仓库的远程 master 分支。
如何避免同名命令冲突?
可以运行 python3 -m git_delete_merged_branches,或使用 git-dmb;也可以调整 PATH 顺序,或者使用命令的绝对路径。
能否先查看将要发生的变更?
可以使用 --dry-run 预览工具准备进行的变更;使用 --verbose 可查看执行的 Git 命令。