git - 删除所有不再在 Github 上的分支
问题描述
我在 GitHub 上有分支 Branch-Master、Branch-A、Branch-B、Branch-C。我通常合并到master并删除合并的分支。这会在我的本地机器上留下一堆分支,而不是 GitHub。
如何自动自动删除我的本地分支?我想创建一个 git 挂钩来执行此操作。
当我尝试
git remote prune origin
然后运行 git branch,我仍然可以看到我所有的分支,甚至那些合并并删除到 master 中的分支。
我知道我能做到
git branch -d {the_local_branch}
手动,但这在执行 gitook 时没有帮助,或者我有多个分支要系统地删除。
我不喜欢这里给出的答案: 如何删除所有已合并的 Git 分支?
是它们基于名称,并推断已删除的分支,而不是以某种方式显式传递特定于该分支的分支 id。我在提供的链接中理解的是,如果我创建一个与已删除分支相同的分支名称,即使它们是不同的分支,它也会被删除。
不解决我的询问,因为它的解决方案已经在上面说明了。
如果它们存在,我宁愿使用使用分支 uid 的某种类型的比较函数。
解决方案
您可以通过一个命令一次性删除所有分支(已签出的分支除外):
git branch --list | xargs git branch -D
如果你想指定一些模式来匹配分支名称,你也可以这样做:
git branch --list k* | xargs git branch -D
并在
git remote prune origin
您可以删除系统中不再引用的远程分支。
希望这可以帮助 !
推荐阅读
- r - 计算R中数据框A的所有列与数据框B的所有列之间的相关p值
- node.js - 如何让每个用户对 discord.js 中的消息做出反应
- react-native - 反应原生禁用 StackNavigator 和 DrawerNavigator
- css - 部署 Jekyll 站点时 CSS 不工作
- go - 为什么 Go 的 rand 包中的 Int63n 会这样称呼它?
- c# - c#删除空文件夹
- python - 继承重写的运算符时返回与调用相同的类型
- mysql - 将 SQLITE 转换为 MYSQL
- c# - C# Windows 窗体应用程序 - 如何从文本框中获取用户输入
- node.js - 节点不允许我启动 express.js 服务器