删除/ refs/heads/review/*在git中删除分支是否安全?

问题描述:

我正在使用Gerrit,我经常通过做git review -d change-#下载更改集。这留下了大量review/user/topic格式的分支。删除/ refs/heads/review/*在git中删除分支是否安全?

安全地通过做rm -rf .git/refs/heads/review直接删除这些。我知道我可以从Gerrit获得提交,但我不想破坏本地存储库。

这取决于你的意思是“安全”。

删除这些分支头文件不会损坏Git存储库。但是如果某些评论分支已经“打包”(现在在.git/packed-refs),它也不会删除这些分支头。如果这符合“安全”的条件,那么是的,这是安全的。 :-)(它也不会删除这些引用的任何推荐日志,并且这在某种程度上更糟糕,因为这些引用日志可以保护回顾请求项目不被GCed。)

更好的方法是使用git branch -D每个review/user/topic,这将删除引用refs/heads/review/user/topic和任何相关的reflog,无论分支是否已被打包。要列举这些主题,请使用git for-each-ref

git for-each-ref --format='%(refname:short)' refs/heads/review | xargs git branch -D 

例如。

+0

'git for-each-ref'。很酷。 顺便说一句,你错过了你的一行结束报价。我试图编辑它,但编辑至少需要6个字符。 –

+0

@StephenRasku:固定,谢谢。 – torek