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

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

  •  
  •   justNoBody 2021-08-12 11:05:51 +08:00 5467 次点击
    这是一个创建于 1522 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    这个仓库快 500G 了= = 估计年底又得换硬盘了
    greatbody
        33
    greatbody  
       2021-08-13 10:13:42 +08:00
    我这个建议适合不需要历史记录的情形。

    将文件夹中的内容按照类型分别拆分到不同的目录,分别设置不同的 git 项目。
    justNoBody
        34
    justNoBody  
    OP
       2021-08-18 14:40:42 +08:00
    @idealhs #10 依赖于 windows 系统,对于 linux 和 macOS 小伙伴不太友好吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2220 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 16:07 PVG 00:07 LAX 09:07 JFK 12:07
    Do have faith in what you're doing.
    ubao 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