git 仓库太大(文档库, 30g+)mbp 硬盘不太够了,有啥办法能让它体积变小一点? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
justNoBody
V2EX    程序员

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

  justNoBody 2021 年 8 月 12 日 5850 次点击
这是一个创建于 1675 天前的主题,其中的信息可能已经有所发展或是发生改变。

我需要拉取最新的提交,又需要修改做推送。 我尝试过指定 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 文件夹是包含历史提交记录的,
cmdOptionKana
    5
cmdOptionKana  
   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  
PRO
   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 小伙伴不太友好吧
关于     帮助文档     自助推广系统     博客 &nbs;   API     FAQ     Solana     1384 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 61ms UTC 17:07 PVG 01:07 LAX 10:07 JFK 13:07
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86