bash - 删除 git 中的合并分支
问题描述
基于https://stackoverflow.com/a/227026/117421
我想出了以下是否有任何错误?
这个想法是在 git 中查找和删除旧分支。
git branch -r --merged origin/master
为您提供已合并到 master 的所有远程分支。但是,它默认包含 master 本身,并且似乎也包含 HEAD -> origin/master。
查找合并到 master 的所有分支,不包括 master 和 HEAD
git branch -r --merged origin/master | grep -v origin/master
排除这两个条目。
在 bash 中进入循环是微不足道的。
for remotebranch in $(git branch -r --merged origin/master | grep -v origin/master); do
echo $remotebranch
done
但是,这列出了分支名称,包括 origin这是错误的格式push --delete
这可以通过替换origin/
为空字符串来解决。
删除 origin/ 前缀
for remotebranch in $(git branch -r --merged origin/master | grep -v origin/master | sed 's/origin\///g'); do
echo $remotebranch
done
所以我认为以下可能会运行,它是否正确,或者有更好的方法吗?
最终解决方案
for remotebranch in $(git branch -r --merged origin/master \
| grep -v origin/master \
| sed 's/origin\///g'); do
git push origin --delete $remotebranch
done
最后你总是可以跑
git fetch --prune
解决方案
推荐阅读
- java - Java 突围游戏 - 移除砖块
- notifications - Flutter:即使我的应用已关闭,我如何才能收到本地通知?
- jquery - 如何在 mozilla add on 中使用 jquery 执行发布请求?
- java - 用 lambda 表达式替换 for-each 循环
- python - 如何进入下一个周期?
- android - 是否需要在通知生效之前将 APK 上传到 Google Play?
- angular - 试图让 Angular 2 在渲染之前等待数据加载
- verilog - Verilog 中的 10:1024 位解码器
- sql - 自定义范围增量 SQL 列
- ms-access - 在设计视图中打开查询,编辑,然后提取结果