git - 如何在不影响 master 的情况下删除我的本地分支历史记录
问题描述
我从 master 创建了一个分支,并且一直在分支中添加和删除大量二进制文件,结果,repo 的大小已经膨胀到原来的三倍。我已经删除了二进制文件并删除了分支,但 repo 大小没有改变。我怎样才能最小化回购大小?
解决方案
如果您在 git 中删除一个分支,则仅删除命名的 ref,存储源的提交仍然存在,并且可以查看git reflog
或恢复(如此处所述)。因此,删除分支不会释放任何磁盘空间(超出视图 kb)。这种提交称为悬空提交,因为没有引用对象的分支/标签。让 git 清理这些东西调用
git reflog expire --expire-unreachable=now --all
git gc --prune=now
当然,这只有在您没有引用包含二进制文件的提交的分支时才有效。这也会破坏 reflog - 使得无法恢复当前删除的提交和分支。
推荐阅读
- prolog - prolog - findall 排序并返回第一个
- java - 向用户显示他点击了哪个按钮
- php - 如果打开 php 文件,指示 Web 浏览器重定向到 localhost
- javascript - Array.includes() 返回未定义
- c++ - 如何检查两个矩阵是否相同?
- javascript - 模板文字中的数组映射在项目之间呈现额外的逗号
- node.js - firebase 统计在线用户并在全球计数器中更新
- selenium - 在使用 java 的 Selenium Webdriver 中,热点击“获取 adobe Flash Player”图标?
- wordpress - VPS 上 WordPress 的权限
- c - 在C编程中实现堆栈的push方法