我只是在寻找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"
任何解决方案都是有意义的
答案 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
部分,以确保其输出您想要删除的内容。