Git-骚操作-批量删除分支
前言
一个业务一个业务开发过去,少的是头发,留下的还有超多的本地分支。
某一天,我的强迫症突然发作了,我就只想保留当前开发的本地分支,该怎么办呢?当然也可以逐条人肉删除,但是我不是很喜欢,不仅累,还显的我不是那么聪明。 于是,去寻找是否有批量删除的命令,果然,它是有的!
批量删除分支命令的 What & Why?
批量删除分支命令具体格式为:
git branch |grep 'xxx' |xargs git branch -D复制代码
有两个使用上要注意的地方:
- xxx 要替换成分支名称的搜索关键词。
git branch -D
删除命令中的 -D 和 -d 参数要合理使用,避免强制删除发生惨剧。
不知你有没有注意到,这条命令的格式很特殊,不是常规的 Git 命令格式。其中含有 Linux 命令 grep
,Git 命令 git branch -D
,还有陌生的 xargs
,不常见的 |
,我开始好奇,上面都是些啥,以及上面的命令是如何做到批量删除的?
为了解决自己的疑问,我去搜索下相关知识,get了不少小技能,现在记在小本本上总结一下。
首先 grep
, xargs
,|
三个都是 Linux 提供的命令。
grep
grep
很常见,是以上三个命令我唯一认识的,名称是 global regular expression print(全局正则表达式输出)的缩写,是Linux 提供的一个搜索工具,搭配不同参数使用,几乎可以做到搜索任何东西,文件,文件夹,文本内容,搜索结果的总数等。这有篇不错的文章,想了解的同学可以去看下。14 个 grep 命令的例子
KISS 和 | 命令
下面两个命令,需要先说明一下Linux 的 KISS 理念。不要多想,不是么么哒,而是 Keep It Simple,Stupid! 表达的意思是每个命令工具都只做一件事情,简单好用。基于这种理念,Linux 的很多命令都是相互独立的。那真实使用场景中,有很多复杂的事情,需要多条命令协作使用,于是 Linux 提供了管道来完成直接的数据传输。管道的操作符就是 |
。
基本格式
指令1 | 指令2 | ... 复制代码
作用 用来连接多条指令,前一条指令的输出流向会作为后一条指令的标准输入。
例1:
ls | grep "Android"复制代码
执行结果:列出该路径下所有名称包含 Android 的文件
例2:
git branch | grep "feature"复制代码
执行结果:列出当前项目所有分支中,名称含有"feature"的分支。
xargs
xargs
命令配合 |
使用,将前一条指令的输出流向会作为后一条指令的参数输入。
基本格式
指令1 | xargs 指令2 | ... 复制代码
作用 命令配合
|
使用,将前一条指令的输出流向会作为后一条指令的参数输入。例1:
ls | grep "Android" | xargs cat复制代码
执行结果:输出该路径下所有名称包含 Android 的文件的内容
例2:
git branch | grep "feature" | xargs git branch -d复制代码
执行结果: 找出所有分支中,名称含有"feature"的分支,然后删除。
总结
大多时候都是搜索到相关命令直接用就没有后续了,也不知道具体的原理。于是,无知的我,还是第一次清楚的理解 Linux 的管道命令。使用管道组合命令实现批量删除的实现很受启发,以后遇到问题也多了一种解决思路。
学无止境,不能懈怠,新知识带来的愉悦感是不可比拟的,希望我们在每一天都有所成长,下篇文章见。
Git-骚操作-批量删除分支相关推荐
- Git-骚操作之批量删除分支
前言 一个业务一个业务开发过去,少的是头发,留下的还有超多的本地分支. 某一天,我的强迫症突然发作了,我就只想保留当前开发的本地分支,该怎么办呢?当然也可以逐条人肉删除,但是我不是很喜欢,不仅累,还显 ...
- SSM框架CRUD操作批量删除批量追加数据(OracleMySQL数据库)
SSM框架CRUD操作Demo 1.SSM开发环境搭建详见下一章微博 2.定义起始页,基本的超链接完成请求,详见如图 由于时间关系,本人将在本博客中陆续推出高级框架阶段的系列教程,现已经发布如下几篇, ...
- git idea 可视化_那些你应该知道的,但是你一定不知道的 Git 骚操作
Hello 大家好,作为团队中的主程阿粉经常参与很多核心功能的开发,而且很多时候一个需求没做好中间又插入新的紧急的需求或者 bug 修复,每次遇到这种情况,如果两个地方代码不冲突的话还好,可以直接在本 ...
- git reflog 恢复已删除分支
语法: git reflog --date=[iso | local | relative] | grep [-w 全词匹配] <branchname> iso:格式化后的时间时间 loc ...
- git 撤销修改、删除分支
撤销修改1.只在工作区修改了,没提交到暂存区 git checkout -- index.html 撤销工作区修改其实 git checkout -- file 就是用暂存区的版本来代替工作区的版本2 ...
- ios13全选手势_iOS13系统5个简单实用的技巧 快速选择/三指操作/批量删除短信/文字转表情...
iOS 13 已经发布一段时间,苹果带来了不少新内容和细节上的优化,一起来看看 iOS 13 还有哪些隐藏的小技巧,希望对大家有所帮助. iOS13系统5个简单实用的技巧: 快速选择文本 当您在编辑文 ...
- git常用操作,切换分支,合并分支
设置全局变量,用户名 git config --global user.name "tang" 设置全局变量,邮箱 git config --global user.email & ...
- sourcetree的操作(删除分支操作)
1.本地删除 右键目标分支,删除即可. 注意:这里的删除是本地删除,不影响远程仓库.另外,当你切换到目标分支时,不能进行删除操作. 2.远程删除 右键目标分支,删除即可.这里是删除远程分支.慎重.
- redis的可视化RDM操作批量删除key
最新文章
- 网站优化中导致关键词排名不稳定的原因有哪些?
- 关于luci的几个问题二
- 第三季1:ORTP库的移植与局域网视频传输
- 动态规划 —— 数位 DP
- Golang爬取网页数据时403
- 几款主流的 Python IDE
- [CS] 发起Conference Call
- udev和mdev hotplug
- 初次尝试CE修改器修改小游戏
- 简单的文件内容繁简体甄别
- 平面设计师okr_还在头疼怎么写OKR,这可能是最全的落地指导手册了
- Oracle或关闭中国研发中心,裁员1600 人
- Python 做一个属于自己的web网站
- Ramnit感染型病毒创建傀儡进程的方法
- [UnexpectedValueException] Your github oauth token for github.com contains invalid characters
- 拓嘉辰丰电商:如何投诉拼多多商家一直不发货
- 使用 vue-i18n 进行Vue国际化处理,使项目切换中英文
- https证书的验证过程与生成方法
- 【投资心经】一位资深操盘手的吐血总结
- 计算机视觉研究人员必备的Linux命令行技巧