前言

一个业务一个业务开发过去,少的是头发,留下的还有超多的本地分支。

某一天,我的强迫症突然发作了,我就只想保留当前开发的本地分支,该怎么办呢?当然也可以逐条人肉删除,但是我不是很喜欢,不仅累,还显的我不是那么聪明。 于是,去寻找是否有批量删除的命令,果然,它是有的!

批量删除分支命令的 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了不少小技能,现在记在小本本上总结一下。

首先 grepxargs| 三个都是 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-骚操作-批量删除分支相关推荐

  1. Git-骚操作之批量删除分支

    前言 一个业务一个业务开发过去,少的是头发,留下的还有超多的本地分支. 某一天,我的强迫症突然发作了,我就只想保留当前开发的本地分支,该怎么办呢?当然也可以逐条人肉删除,但是我不是很喜欢,不仅累,还显 ...

  2. SSM框架CRUD操作批量删除批量追加数据(OracleMySQL数据库)

    SSM框架CRUD操作Demo 1.SSM开发环境搭建详见下一章微博 2.定义起始页,基本的超链接完成请求,详见如图 由于时间关系,本人将在本博客中陆续推出高级框架阶段的系列教程,现已经发布如下几篇, ...

  3. git idea 可视化_那些你应该知道的,但是你一定不知道的 Git 骚操作

    Hello 大家好,作为团队中的主程阿粉经常参与很多核心功能的开发,而且很多时候一个需求没做好中间又插入新的紧急的需求或者 bug 修复,每次遇到这种情况,如果两个地方代码不冲突的话还好,可以直接在本 ...

  4. git reflog 恢复已删除分支

    语法: git reflog --date=[iso | local | relative] | grep [-w 全词匹配] <branchname> iso:格式化后的时间时间 loc ...

  5. git 撤销修改、删除分支

    撤销修改1.只在工作区修改了,没提交到暂存区 git checkout -- index.html 撤销工作区修改其实 git checkout -- file 就是用暂存区的版本来代替工作区的版本2 ...

  6. ios13全选手势_iOS13系统5个简单实用的技巧 快速选择/三指操作/批量删除短信/文字转表情...

    iOS 13 已经发布一段时间,苹果带来了不少新内容和细节上的优化,一起来看看 iOS 13 还有哪些隐藏的小技巧,希望对大家有所帮助. iOS13系统5个简单实用的技巧: 快速选择文本 当您在编辑文 ...

  7. git常用操作,切换分支,合并分支

    设置全局变量,用户名 git config --global user.name "tang" 设置全局变量,邮箱 git config --global user.email & ...

  8. sourcetree的操作(删除分支操作)

    1.本地删除 右键目标分支,删除即可. 注意:这里的删除是本地删除,不影响远程仓库.另外,当你切换到目标分支时,不能进行删除操作. 2.远程删除 右键目标分支,删除即可.这里是删除远程分支.慎重.

  9. redis的可视化RDM操作批量删除key

最新文章

  1. 网站优化中导致关键词排名不稳定的原因有哪些?
  2. 关于luci的几个问题二
  3. 第三季1:ORTP库的移植与局域网视频传输
  4. 动态规划 —— 数位 DP
  5. Golang爬取网页数据时403
  6. 几款主流的 Python IDE
  7. [CS] 发起Conference Call
  8. udev和mdev hotplug
  9. 初次尝试CE修改器修改小游戏
  10. 简单的文件内容繁简体甄别
  11. 平面设计师okr_还在头疼怎么写OKR,这可能是最全的落地指导手册了
  12. Oracle或关闭中国研发中心,裁员1600 人
  13. Python 做一个属于自己的web网站
  14. Ramnit感染型病毒创建傀儡进程的方法
  15. [UnexpectedValueException] Your github oauth token for github.com contains invalid characters
  16. 拓嘉辰丰电商:如何投诉拼多多商家一直不发货
  17. 使用 vue-i18n 进行Vue国际化处理,使项目切换中英文
  18. https证书的验证过程与生成方法
  19. 【投资心经】一位资深操盘手的吐血总结
  20. 计算机视觉研究人员必备的Linux命令行技巧

热门文章

  1. 科学计算机里怎样输入分数,怎样在卡西欧计算器上输入分数
  2. i5 10400F处理器性能怎么样
  3. MATLAB利用QQ图检验总体是否服从多维正态分布
  4. 口袋进化服务器维护,《口袋进化》新手指引.新手指导
  5. ADC0804工作原理
  6. android 视频处理60帧,如何导出60帧视频,让视频画面流畅无比
  7. Spring 事务管理@transactional 的实现原理和使用
  8. for 和 if 的基础用法
  9. FIR滤波器工作原理及实现过程介绍
  10. 高精度罗盘的特点介绍