一条git命令即可批量删除未使用的分支机构

时间:2019-12-06 06:42:59

标签: git unix

我只是在寻找git命令来批量删除未使用的远程分支。

我的要求是,我想删除特定用户过去几个月的合并或未使用的分支。可以说,A是用户在11月创建了10个分支,在12月又创建了10个分支。现在他想删除11月的分支。

我只是尝试使用git for-each-ref来实现:

git for-each-ref --format='%(committerdate) %09 %(authorname) %09 % \ 
(refname)%09 %(committerdate:relative)' --sort=committerdate  |grep "Rk"

任何解决方案都是有意义的

1 个答案:

答案 0 :(得分:1)

假设一个master分支是您的稳定分支,则用于批量删除合并分支的命令看起来像

git checkout master
git branch -d $(git for-each-ref --author=<name> --since="november" --before="december" --format="%(refname:short)" refs/heads)

由于您要删除每个分支,因此不会删除任何未合并分支(即使具有给定的日期/作者特征),但是带有-d标志不会删除删除未合并的分支。

通常,您可以在--merged=master命令中添加for-each-ref,它的详细程度会降低一些,从而避免输出拒绝的删除内容。


注意

在触发删除本身之前,请单独测试for-each-ref部分,以确保其输出您想要删除的内容。