【发布时间】:2020-10-15 18:32:13
【问题描述】:
公司的一个仓库中似乎存在 1836 个分支,我的任务是首先显示然后删除所有 6 个月未提交的分支。
我找到了this SO question 并尝试运行(同时使用 --until 和 --before 以及“月”):
#!/bin/bash
branches_to_delete_count=0
for k in $(git branch -a | sed /\*/d); do
if [ -n "$(git log -1 --before='6 month ago' -s $k)" ]; then
echo "NOT REALLY DELETING, git branch -D $k"
fi
((branches_to_delete_count=branches_to_delete_count+1))
done
echo "Found $branches_to_delete_count branches to delete!"
但无济于事,我每次删除相同数量的分支,即 1836。
我做错了什么?如何列出所有超过 6 个月未提交的分支?
【问题讨论】:
-
尝试
git for-each-ref --format='%(objectname) %(objecttype) %(refname) %(creatordate:unix)' --sort='-creatordate' refs/heads/并将最后一列解析为自 Unix 纪元以来的秒数。