1.批量删除本地除master之外的分支
1. 删除本地已合并master的分支
git branch | grep -v "master" | xargs git branch -D
列出所有与主分支(这里假设是
master)合并的分支,
然后筛选掉当前所在的分支(以*标记的分支),
最后使用xargs命令将筛选出的分支名称作为参数传递给git branch -d命令进行删除
2. 删除本地除master之外的分支
git branch | grep -v "master" | xargs git branch -D
列出所有本地分支的名称,
然后使用正则表达式筛选出非"master"的分支,
最后使用xargs命令将筛选出的分支名称作为参数传递给git branch -D命令进行强力删除
2.删除本地远程分支
1.本地删除远程已经不存在的分支
git fetch --prune
使用
git fetch --prune命令时,Git 会比较您的本地分支和远程仓库中的分支,并删除那些在远程仓库中已被删除的分支。这可以确保您的本地仓库与远程仓库保持同步,并避免在合并操作时出现冲突
- 2.不同写法
git fetch -p
git fetch -p origin
git remote prune origin
2.批量删除远程分支
查看某一类远程分支fix是指分支名称包含fix字段的
git branch -a | grep fix
git branch -a | grep <branch-name1> <branch-name2> <branch-name3>
2.批量删除远程分支
git for-each-ref --format='%(refname:short)' refs/remotes/origin/ | cut -c 11- | xargs -I {} sh -c 'git push origin :{}'
git for-each-ref: 这是一个Git命令,用于遍历所有引用(包括本地分支、远程分支、标签等)。它可以将每个引用的信息输出到标准输出。--format='%(refname:short)':这是一个选项,用于指定输出引用的格式。%(refname:short)表示只输出引用的短名称,不包括路径和前缀。refs/remotes/origin/: 这是一个引用路径,用于指定要遍历的远程分支。refs/remotes/origin/表示所有以 "origin/" 开头的的前缀的远程分支| cut -c 11-: 这是一个管道操作符,将前一个命令的输出传递给下一个命令。cut -c 11-表示从第11个字符开始,将每行文本剪切到结尾。xargs -I {} sh -c 'git push origin :{}': 这是一个命令行工具,用于将输入转换为命令行参数。-I {}表示将输入替换为指定的占位符{}。sh -c 'git push origin :{}'是一个Shell命令,将占位符{}替换为剪贴板中的文本,并执行推送操作,删除远程仓库中的分支。