我随着时间的推移在refs/builds/archived/*
中存档了一堆构建标记,现在我想删除它们以恢复一些空间并减少总对象数(在那里存储了超过50k个带注释的git标记)。
看起来这样做的唯一方法是:
git show-ref\
| awk '/refs\/builds\/archived\/[^\/]*$/ { print "git update-ref -d "$2}'\
| sh
这非常慢。此外,这样做似乎会减慢从repo完成的任何git提取,直到我在其上运行git gc
。
答案 0 :(得分:6)
你应该能够说出类似
的内容git for-each-ref --format='delete %(refname)' refs/builds/archived | git update-ref --stdin
这应该在一次批量操作中完成所有操作。请注意,我自己并没有真正试过这个。