用于删除已合并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 |