借助grep和xargs批量删除Git分支时遇换行符问题求助
解决Windows下Git批量删除分支时的回车符问题
直接给你几个靠谱的解决办法:
用
tr过滤回车符:强制删除所有回车符(\r),避免xargs解析时带上多余字符git branch | grep -v 'master' | tr -d '\r' | xargs git branch -d用Git原生参数输出纯净分支名(推荐):跳过文本过滤的坑,直接让Git输出不带格式的短分支名
git branch --format='%(refname:short)' | grep -v 'master' | xargs git branch -d这个方法最稳定,
%(refname:short)会精准输出分支名称,没有多余的前缀、空格或换行符问题,从根源避免格式解析错误。用
sed移除行尾回车符:如果tr不好使,用sed替换掉行尾的\rgit branch | grep -v 'master' | sed 's/\r$//' | xargs git branch -d
补充说明
之前命令失效大概率是Git更新后输出格式的细微调整,或者终端环境的换行符配置变化(比如默认输出从LF变成了CRLF)。用git branch --format的方法完全绕开了文本格式处理的问题,比过滤回车符的方案更可靠。
内容的提问来源于stack exchange,提问作者Dumas.DED
相关产品推荐
相关产品推荐

