所以我正在 Unity 中做一个项目,我很好奇为什么我的项目大小如此之大(200 GB),然后我意识到有一个隐藏的 .git 文件夹,其大小为 80 GB。
有人告诉我压缩我的数据库。这会释放空间,所以我进入 Git GUI 并按下压缩按钮,它耗尽了磁盘中的所有可用空间。命令甚至还没有完成。
我现在可以用 300 MB 的可用空间来清除 .git 文件夹吗?
Git 历史记录可能会占用大量空间,即使大文件不在最新分支上也是如此。
您可以删除存储库的所有 Git 历史记录并将当前状态变为初始状态:
可见:https://stackoverflow.com/a/26000395
git checkout --orphan latest_branch
git add -A
git commit -am "commit message"
git branch -D main
git branch -m main
git push -f origin main
这将释放您的
.git
文件夹中的大量空间。
另请参阅:使当前提交成为 Git 存储库中唯一(初始)提交?
(这本质上与我在https://stackoverflow.com/a/70742570/7058266中发布的解决方案相同)
然后我意识到有一个隐藏的.git文件夹,大小为80Gb
如果你的
.git
文件夹那么大,并且你正在做Unity开发,我真的希望你使用git-lfs。
否则你犯了一个大错误,你将不得不修复它(如果你不再有可用空间,事情会变得更加复杂,所以我不会在这里回答)
如果您使用 git-lfs,您可以使用以下命令清理不再使用的对象:
git lfs prune
只有在那之后并且如果它产生了一些空闲空间,那么你就可以做一个
git gc
所以我进入 Git GUI 并按下压缩,它耗尽了我磁盘中的所有可用空间,该命令甚至没有完成。
如果它的行为像这样并且无法压缩 git 对象,这可能意味着您没有启用 git-lfs,因此 git 很难压缩您的大型二进制文件资产,因此您必须启用它并转换您的整个 git 历史记录使用它。但在确保您使用的 git 托管支持它之前...
对于您的迁移,类似的事情可能会有所帮助:
而且我不确定当你的磁盘已满时是否可以完成。 因此,也许您必须腾出可用空间或将存储库复制到其他地方,然后从那里开始工作(在开始执行这些操作之前,先创建一个副本作为备份仍然是一个好主意)。
如果需要,购买外部硬盘...
Unity 与 Git:https://thoughtbot.com/blog/how-to-git-with-unity