How about using --since
and --before
?
For example, this will delete all branches that have not received any commits for a week:
for k in $(git branch | sed /*/d); do
if [ -z "$(git log -1 --since='1 week ago' -s $k)" ]; then
git branch -D $k
fi
done
If you want to delete all branches that are more than a week old, use --before
:
for k in $(git branch | sed /*/d); do
if [ -z "$(git log -1 --before='1 week ago' -s $k)" ]; then
git branch -D $k
fi
done
Be warned though that this will also delete branches that where not merged into master or whatever the checked out branch is.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…