我想一次性删除具有特定前缀的所有本地和远程分支,最好是作为zsh别名/函数delete_branches
。我们使用JIRA,并使用JIRA编号为每个分支名称添加前缀。
所以,如果我的git branch -a
给了我:
1234-branch
1234-review
2345-branch-name
2345-review
master
remotes/origin/1234-branch
remotes/origin/1234-review
remotes/origin/2345-branch-name
remotes/origin/2345-review
remotes/origin/master
我希望能够调用delete_branches 1234
并查看此输出
Really delete branches 1234-branch, 1234-review? (y/n)
答案 0 :(得分:1)
根据正则表达式删除所有本地分支:
git branch -D $(printf "%s\n" $(git branch) | grep 1234)
根据正则表达式删除所有远程分支:
git push origin --delete <branchName>
首先,您需要为远程分支运行此命令,然后运行本地命令。
示例:
$ git branch
1234-first
1234-second
2222-first
2222-second
* master
$ git branch -D $(printf "%s\n" $(git branch -a) | grep 1234)
Deleted branch 1234-first (was fb4949b).
Deleted branch 1234-second (was fb4949b).
$ git branch
2222-first
2222-second
* master