justNoBody
V2EX  ›  程序员

git 仓库太大(文档库, 30g+)mbp 硬盘不太够了,有啥办法能让它体积变小一点?

By justNoBody at 2021 年 8 月 12 日 · 6542 次点击

我需要拉取最新的提交,又需要修改做推送。 我尝试过指定 depth 或者使用 iCloud 来解决,但都以不完美告终

第 1 条附言  ·  2021 年 8 月 18 日
非常感谢大家的答复,我最近一直在尝试看怎么减小这个仓库。
很遗憾,虽然最终缩小到了 23G,但我个人并不满意。
我首先尝试了 git gc,运行完成后,实际效果很差,并没有缩小多少体积。
又尝试增加了 git lfs,但我没注意的是,我这个仓库的文件不是反复上传的,上传文件的重复率很低。所以我通过 git clone --depth 1 下载得到的大小也是 20G+

至此,再一次陷入困境。至于大家所说换 svn 的事儿,这不是我能决定的
第 2 条附言  ·  2021 年 8 月 18 日
34 条回复  •  2021-08-18 14:40:42 +08:00
smallpython
   1
smallpython  
   2021 年 8 月 12 日   ❤️ 1
使用 svn 替换 git
liuky
   2
liuky  
   2021 年 8 月 12 日
wangyzj
   3
wangyzj  
   2021 年 8 月 12 日
gc
liuky
   4
liuky  
   2021 年 8 月 12 日
你这个是实际文档 30G(纯文档理论也就最多几百兆), 还是加上 .git 文件夹, .git 文件夹是包含历史提交记录的,
QingXuJiaZhi
   5
QingXuJiaZhi  
   2021 年 8 月 12 日
如果需要历史版本,可改用坚果云或 dropbox 。如果不需要历史版本,改用普通的同步盘就可以了。
yitingbai
   6
yitingbai  
   2021 年 8 月 12 日   ❤️ 4
@smallpython 人家是来解决问题的, 不是来找麻烦的, 你这么回答, 还不如直接跟他说买一块移动硬盘
wellsc
   7
wellsc  
   2021 年 8 月 12 日   ❤️ 1
放过 git 吧
liuidetmks
   8
liuidetmks  
   2021 年 8 月 12 日
感觉 git 同步文档不合适,文档 里面有大量图片,每次修改一个文字,也会重新存储整个 文档文件.
masterclock
   9
masterclock  
   2021 年 8 月 12 日
微软的 git,gvfs 那一类的是不是可以解决?
idealhs
   10
idealhs  
   2021 年 8 月 12 日   ❤️ 3
使用微软的 GVFS (Git Virtual File System),微软使用该 Git 定制版本管理自己的超大仓库。GVFS 不会把所有内容都存在本地,在使用的时候才会拉取。使用操作和 Git 基本无差别,也支持为 Git 开发的各种 GUI 。
lingxi27
   11
lingxi27  
   2021 年 8 月 12 日   ❤️ 3
养成好习惯,不要往 git 里面提交二进制内容
clino
   12
clino  
   2021 年 8 月 12 日   ❤️ 2
git clone --depth 1
clino
   13
clino  
   2021 年 8 月 12 日
什么类型的文档?
dangyuluo
   14
dangyuluo  
   2021 年 8 月 12 日   ❤️ 1
是不是太多大文件了?考虑下用 LFS
littlewing
   15
littlewing  
   2021 年 8 月 12 日
不要用 git 来存非文本文档,换 svn 吧
loophole12
   16
loophole12  
   2021 年 8 月 12 日 via Android
如果.git 目录太大的话可以考虑截断历史
happinessnch
   17
happinessnch  
   2021 年 8 月 12 日
30G 换 SVN 感觉也大了点,弄个 FTP 不行吗?为啥一定要版本控制。
justNoBody
   18
justNoBody  
OP
   2021 年 8 月 12 日
@liuky #4 按 gitlab 统计来看,实际文档大小应该是 7g+
justNoBody
   19
justNoBody  
OP
   2021 年 8 月 12 日
@clino #12 #13 --depth 1 提交的时候会被拒绝的嘛 文档类型有点多,几乎所有常见的类别都有了。
cloverzrg2
   20
cloverzrg2  
   2021 年 8 月 12 日
我的话,估计直接就换仓库了
把 git 仓库改名为 xx-old,然后本地删掉.git 目录,执行 git init,新起个项目,添加 remote,push
cloverzrg2
   21
cloverzrg2  
   2021 年 8 月 12 日
不知道你这个文档库是干嘛的
dayeye2006199
   22
dayeye2006199  
   2021 年 8 月 12 日
1G 的文档大概 8 千万个中文字,7G 的文档大约有 5 亿 6 千万字。LZ 的这个文档大概水平相当于《永乐大典》。。一部宏伟的码农巨著。。
dezng
   23
dezng  
   2021 年 8 月 12 日   ❤️ 1
https://git-lfs.github.com/
是在找这个吗?
NouveauNom
   24
NouveauNom  
   2021 年 8 月 12 日
建议挂移动硬盘,mbp2015 及之前可以自己升级硬盘。
xx6412223
   25
xx6412223  
   2021 年 8 月 12 日   ❤️ 1
这就是 svn 该做的事情
xz410236056
   26
xz410236056  
   2021 年 8 月 12 日
试试 git -b -d?(-b 克隆指定分支,-b 只保留最近的一部分版本(比如 100 个))
clino
   27
clino  
   2021 年 8 月 12 日
@justNoBody 怎么会被拒绝,我经常这么用啊
如果要看更多历史可以 git fetch --depth 10,要看完整历史可以 git fetch --unshallow
Raven316
   28
Raven316  
   2021 年 8 月 12 日
主要是你每改一个 2 进制文档,都会存一个备份。。所以实在太大了
adoal
   29
adoal  
   2021 年 8 月 12 日 via iPhone
如果文档类型以 Microsoft Office 为主,用 Sharepoint 吧
dingshenghuang
   30
dingshenghuang  
   2021 年 8 月 12 日
如果你是一个版本本身内容就很大,那没辙; 如果你具体某个版本比较小,但是仓库 clone 下来发现占用存储比较大,开下 Git LFS 可以做到很好的优化
BeautifulSoap
   31
BeautifulSoap  
   2021 年 8 月 12 日 via Android
lz 一开始选版本管理工具就选错了。这种情况你一开始就该选 svn 而不是 git
要么换软件要么就像上面说的用 gvfs
Showfom
   32
Showfom  
   2021 年 8 月 12 日
https://github.com/cdnjs/cdnjs

这个仓库快 500G 了= = 估计年底又得换硬盘了
greatbody
   33
greatbody  
   2021 年 8 月 13 日
我这个建议适合不需要历史记录的情形。

将文件夹中的内容按照类型分别拆分到不同的目录,分别设置不同的 git 项目。
justNoBody
   34
justNoBody  
OP
   2021 年 8 月 18 日
@idealhs #10 依赖于 windows 系统,对于 linux 和 macOS 小伙伴不太友好吧
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
© 2026 V2EX · 80ms · 3.9.8.5