V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
zhonghua
V2EX  ›  git

为毛我本地git repo的.git目录占的空间那么大

  •  
  •   zhonghua · 2014-01-02 11:33:20 +08:00 · 8881 次点击
    这是一个创建于 4009 天前的主题,其中的信息可能已经有所发展或是发生改变。
    自己折腾,玩的一个工程,代码和资源都放在一个repo下面

    今天发现工程空间占据了2.4G的空间,单单.git目录就占据了1.0G的空间

    目前对GIT的了解,还仅限于自己个人使用

    唯一能想到的原因就是,关于二进制资源

    二进制资源无法很好的DIFF,所以commit的次数变多之后,反而丢失了GIT差异存储的优势

    如果真的是这个原因,那么正式跟别人合作的项目,得好好划分二进制资源和代码的结构
    8 条回复    1970-01-01 08:00:00 +08:00
    cloudzhou
        1
    cloudzhou  
       2014-01-02 11:36:18 +08:00
    git gc 看一下先
    ddaii
        2
    ddaii  
       2014-01-02 11:50:39 +08:00
    git保存的不是文件的差异,而是快照,所以如果管理的大文件经常改动的话git占用的空间会非常大。
    liuhui998
        3
    liuhui998  
       2014-01-02 11:53:10 +08:00
    @ddaii

    git gc 后,Git 会根据文件差异后来压缩
    pynix
        4
    pynix  
       2014-01-02 18:56:11 +08:00
    不要托管二进制资源,如压缩包,视频之类的。。。。。
    zhonghua
        5
    zhonghua  
    OP
       2014-01-02 19:34:04 +08:00
    @cloudzhou 减少了300M

    @ddaii ???快照??怎么跟我以前对于GIT的认识差距好大。。。

    @pynix 恩,看来二进制资源还是得SVN托管啊
    ddaii
        6
    ddaii  
       2014-01-02 21:35:52 +08:00
    @zhonghua git有两种保存对象的方式,默认情况下git保存的是文件的快照。当仓库中的快照文件太多或执行 git gc 或提交到远程仓库的时候就会把相似的对象保存成另一种 Packfile 格式,这种格式保存的就是文件的差异。
    zhonghua
        7
    zhonghua  
    OP
       2014-01-03 10:16:58 +08:00
    @ddaii 如来原此。执行完git gc之后,.git目录还是有6-7百M,难道是硬伤?
    imbahom
        8
    imbahom  
       2014-01-03 14:34:13 +08:00
    空间换时间啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5691 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 03:01 · PVG 11:01 · LAX 19:01 · JFK 22:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.