删除/ 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
例如。
'git for-each-ref'。很酷。 顺便说一句,你错过了你的一行结束报价。我试图编辑它,但编辑至少需要6个字符。 –
@StephenRasku:固定,谢谢。 – torek