通过删除git中的/refs/heads/review/*来删除分支安全吗?

通过删除git中的/refs/heads/review/*来删除分支安全吗?,git,gerrit,Git,Gerrit,我使用的是Gerrit,我经常通过git review-d change-#下载变更集。这就留下了大量的格式分支review/user/topic 通过执行rm-rf.git/refs/heads/review直接删除这些文件是否安全。我知道我可以从Gerrit获得提交,但我不想损坏本地存储库。这取决于您所说的“安全” 删除这些分支头文件不会损坏Git存储库。但是,如果一些审查分支已经“打包”(并且现在位于.git/packed refs),它也不会删除这些分支标题。如果符合“安全”条件,那么是

我使用的是
Gerrit
,我经常通过
git review-d change-#
下载变更集。这就留下了大量的格式分支
review/user/topic


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

这取决于您所说的“安全”

删除这些分支头文件不会损坏Git存储库。但是,如果一些审查分支已经“打包”(并且现在位于
.git/packed refs
),它也不会删除这些分支标题。如果符合“安全”条件,那么是的,它是安全的。:-)(它也不会删除这些引用的任何重登录,更糟糕的是,这些重登录可能会保护审查请求项不被GCD删除。)

更好的方法是在每个
review/user/topic
上使用
git branch-D
,这将删除参考
refs/heads/review/user/topic
和任何相关的reflog,而不管分支是否已打包。要枚举这些主题,请对每个引用使用
git

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

例如。

git用于每个ref
。很酷。顺便说一下,你的一行中缺少一个结束报价。我试图编辑它,但编辑需要至少6个字符。