有没有办法清理混帐?
似乎我的项目越来越大,每个git commit/push
。 有没有办法清理我的git文件夹?
我不确定你想要什么。 首先,当然每次你提交/推送的目录会变得更大,因为它必须存储每个额外的提交。
但是,可能你想git gc
这将“清理不必要的文件和优化本地存储库”( 手册页 )。
另一个可能相关的命令是git clean
,它会从树中删除未跟踪的文件( 手册页 )。
跑:
git remote prune origin
删除所有已经在origin
位置被移除,但仍在本地可用remotes/origin
旧的跟踪分支。
git gc --auto
“垃圾收集” – 运行pipe家任务(压缩修订,删除松散/无法访问的对象)。 – --auto
标志首先确定是否需要任何工作,如果没有做任何事情,则退出。
一种情况是,你的git repo在每次提交时都会变得更加严重 ,这就是你提交经常生成的二进制文件的地方。 他们的存储将不会像文本文件一样高效 。
另一个是在一个回购站(这是git的限制 )内有大量文件,而不是几个subrepos( 作为子模块pipe理 )。
在这篇关于git空间的文章中 ,AlBlue提到:
请注意,Git(和Hg以及其他DVCS)确实遇到了(大)二进制文件被检入,然后被删除的问题,因为它们仍然会显示在存储库中并占用空间,即使它们不是最新的。
如果你的git仓库里有大的二进制文件,你可以考虑:
- 在外部存储库中pipe理这些二进制文件。
- pipe理你的.git回购大小
- 尝试使用
git filter-branch
从历史logging中删除这些二进制文件(警告:这将重写历史logging,如果您已经推动了您的repo,并且其他人已经从中撤出)
git clean -d -f -i
是最好的办法。
这将有助于以更可控的方式进行清洁。
-i
代表互动。
是的, git gc
是解决scheme,当然,
和本地 – 您可以删除本地存储库并再次克隆,
但是这里有更重要的东西
你等待那个巨大的git&externals处理的秒数被收集到长时间的分钟里,
从头开始创build一个新的(完全不只是一个分支)存储库 ,包括唯一的最新版本的文件, 当然,你将失去所有的历史,
但是在代码世界里,没有时间去感悟,没有任何一点拖延整个5年的代码每一个提交或差异,你仍然可以存储旧的git&外部的地方,如果你怀旧:]
但是,在某个时候,你真的不得不前进:]
你的团队会感谢你!
不知道它是否会缩小它,但是在我运行git clean之后,我经常做一个“git repack -ad”,这减less了pack文件的数量。