我维护一个git存储库,它在中央存储库上有一百个左右的分支。这些分支中的许多是为长期服务的某些目的而创建的,现在不活跃。有些分支可能因某种原因而停留(例如,它们是发布分支),但其他许多分支可能会被删除。
我想要一个脚本,它生成每个分支的报告,按上次提交活动排序,如果分支合并到我们的主线“develop”分支,还要用 * 标记该分支。
因此示例输出可能是:
origin/develop 10 minutes ago
origin/feature/X 1 day ago
origin/feature/Y *** 35 days ago
origin/feature/Z 70 days ago
所以我可以通过电子邮件发送Y和Z的所有者并告诉他们删除他们的分支机构。我也可以对Y说他们的分支合并开发。
我假设我可以通过在分支上找到最终提交的sha1并在其上执行“git branch --contains hashcode”来测试合并。
那里有一个可以满足我目的的剧本吗?
答案 0 :(得分:0)
我不确定在一段时间内确定尚未提交的回购,但至于识别已经合并的分支,这里有一些命令......
(以下所有代码都从Steve Harman's blog post解除,请提供更多信息。)
删除已合并为master的本地分支:
(First, check out master. Then...)
$ git branch --merged master | grep -v "\* master" | xargs -n 1 git branch -d
您可以省略master分支参数以删除已合并到当前HEAD中的本地分支:
$ git branch --merged | grep -v "\*" | xargs -n 1 git branch -d