git housekeeping - 删除合并的分支

时间:2017-02-10 12:31:55

标签: git

当我的虚拟机空间不足时,清理旧分支的最佳方法是什么。

git结构使用develop作为主要分支,并使用git flow创建功能,定期我切换开发并执行pull和rebase功能分支以防止开发。

我是git的新手,我想清理合并后开发的旧分支,因为我的空间不足但我不想对远程存储库做任何事情,因为我不负责它。

我只需要释放一些空间,任何人都可以告诉我如何在不删除实际远程存储库的分支的情况下执行此操作吗?

2 个答案:

答案 0 :(得分:2)

虽然您可以轻松删除合并的分支,但它根本无法帮助您。分支只是一个指向提交的指针,所以消耗恰好41个字节。 (sha为40个字节加上换行符)。如果分支包含对其他悬挂提交的引用,则删除分支并执行一些垃圾收集可以释放空间,但如果提交合并到另一个分支,则它们不会悬空并且将保留。所以它根本没用。如果你在分支上做了很多rebase,那么分支的reflog可能会保留对其他悬空提交的引用,所以你可以通过exfore reflog然后进行垃圾收集来释放一些空间。有关详细信息,请参阅https://git-scm.com/docs/git-refloghttps://git-scm.com/docs/git-gc

答案 1 :(得分:1)

试试这个:

# delete the branches that is merged with develop branch
$ git chekcout develop
$ git branch --merged | grep -v '*' | xargs git branch -d  

# delete the branches from local that is deleted in remote
$ git remote prune origin