hou*_*oft 210
我不确定你想要什么.首先,当然每次提交/推送目录都会变得更大,因为它必须存储每个额外的提交.
但是,您可能希望git gc"清理不必要的文件并优化本地存储库"(手册页).
另一种可能是相关的命令是git clean将删除从你的树(未跟踪文件手册页).
pha*_*tri 56
跑:
git remote prune origin
Run Code Online (Sandbox Code Playgroud)
删除已经删除origin但仍在本地可用的所有陈旧跟踪分支remotes/origin.
git gc --auto
Run Code Online (Sandbox Code Playgroud)
' G arbage C ollection' - 执行内务处理任务(压缩修订,删除松散/不可访问的对象).该--auto标志首先确定是否需要任何工作,如果没有则退出而不做任何事情.
Von*_*onC 25
每个提交都会使git repo变得更严重的一种情况是您提交定期生成的二进制文件.它们的存储效率不如文本文件高.
另一个是你在一个仓库中有大量文件(这是git的限制)而不是几个子目录(作为子模块管理)的文件.
在这篇关于git space的文章中,AlBlue提到:
请注意,Git(和Hg,以及其他DVCS)确实遇到了一个问题,即检查(大)二进制文件然后删除它们,因为它们仍会显示在存储库中并占用空间,即使它们不是最新的.
如果您的git仓库中存储了大型二进制文件,您可以考虑:
git filter-branch(警告:这将改写历史,这是不好的,如果你已经推你的回购,如果其他已经从它拉)小智 22
是的,git gc是解决方案,当然,
和本地 - 您可以删除本地存储库并再次克隆它,
等待那些巨大的git和externals处理的秒数被收集到很长的几分钟,其中收集了几个小时的低效时间,
从头开始创建一个新的(完全不仅仅是一个分支)存储库,包括唯一的最新版本的文件,当然你会丢失所有历史记录,
但是在代码世界中,现在不是时候变得多愁善感,没有必要拖延整个5年的代码每次提交或差异,如果你怀旧,你仍然可以将旧的git和externals存储在某个地方:]
但是,在某些时候你真的必须继续前进:]
你的团队会感谢你!
git clean -d -f -i 是最好的方法.
这将有助于以更加可控的方式进行清洁.
-i 代表互动.
运行此命令非常危险,但会通过删除所有git恢复/备份文件来缩小存储库:
git reflog expire --expire=now --all && git gc --prune=now --aggressive
Run Code Online (Sandbox Code Playgroud)
它将擦除git用于从某些错误命令恢复存储库的所有文件,例如,如果你这样做git reset --hard,你通常可以恢复丢失的文件.但如果你git reset --hard在git reflog expire...命令之前做,那么你就失去了一切.现在,您唯一的希望是使用一些分析文件系统的工具,并尝试恢复已删除的文件(如果它们未被覆盖).
| 归档时间: |
|
| 查看次数: |
168658 次 |
| 最近记录: |