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

时间:2017-02-15 18:43:22

标签: git gerrit

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

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

1 个答案:

答案 0 :(得分:4)

这取决于您的意思" safe"。

删除那些分支头文件不会破坏Git存储库。但是,如果一些评论分支已被打包" (并且现在在.git/packed-refs),它也不会删除那些分支头。如果这符合" safe",那么是的,它是安全的。 :-)(它也不会删除这些引用的任何reflog,并且在某种程度上更糟糕,因为这些reflog可能会保护审阅请求项不被GC。)

更好的方法是在每个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
例如