别名/脚本,用于删除具有特定前缀的所有本地和远程git分支

时间:2015-08-20 15:49:38

标签: git jira zsh

我想一次性删除具有特定前缀的所有本地和远程分支,最好是作为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)

1 个答案:

答案 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