我想清理我的本地存储库,它有大量的旧分支:例如3.2、3.2.1、3.2.2等。
我希望有个鬼鬼祟祟的办法能一次性把他们干掉。因为它们大多遵循点释放约定,我想也许有一个捷径可以说:
git branch -D 3.2.*
并杀死所有3.2。x分支。
我尝试了这个命令,当然,它不起作用。
我想清理我的本地存储库,它有大量的旧分支:例如3.2、3.2.1、3.2.2等。
我希望有个鬼鬼祟祟的办法能一次性把他们干掉。因为它们大多遵循点释放约定,我想也许有一个捷径可以说:
git branch -D 3.2.*
并杀死所有3.2。x分支。
我尝试了这个命令,当然,它不起作用。
当前回答
你可以使用git branch——list列出符合条件的分支,并使用git branch -D/ -D删除符合条件的分支。
一个程序示例:
git branch -d `git branch --list '3.2.*'`
其他回答
你可以使用这个命令:git branch -D $(printf "%s\n" $(git branch) | grep '3.2')
我今天刚刚清理了一大批过时的本地/远程分支机构。
以下是我的做法:
1. 列出所有分支名称到一个文本文件:
git branch -a >> BranchNames.txt
2. 附加我想删除的分支到命令"git branch -D -r":
git branch -D -r origin/dirA/branch01 origin/dirB/branch02 origin/dirC/branch03(…附加任何分支名称)
3.执行CMD命令
这一个比“git push origin -delete”工作得更快更可靠。
这可能不是其他答案中列出的最聪明的方法,但这个方法非常直接,而且易于使用。
使用以下命令删除所有分支(签出的分支不会被删除)。
git branch | cut -d '*' -f 1 | tr -d " \t\r" | xargs git branch -d
编辑:我用的是Mac Os
对于使用PowerShell的纯灵魂,这里有一个小脚本 Git branch -d $(Git branch——list '3.2.;*' | %{$_.Trim()})
你可以使用git branch——list列出符合条件的分支,并使用git branch -D/ -D删除符合条件的分支。
一个程序示例:
git branch -d `git branch --list '3.2.*'`