找到我的git存储库大小的简单方法是什么?而且我不是指du -h我的仓库的根目录.我有很多被忽略的文件,因此大小与我的总回购大小不同.我基本上想知道在克隆我的回购时会传输多少数据.
我在将本地文件夹推送到GitHub上的远程存储库时遇到问题.
我推后它达到96%左右然后显示这个..
Counting objects: 4145, done.
Delta compression using up to 2 threads.
Connection to github.com closed by remote host.
fatal: The remote end hung up unexpectedly
Compressing objects: 98% (3919/3969)
Run Code Online (Sandbox Code Playgroud)
然后在最后2%完成后显示此错误...
Compressing objects: 100% (3963/3963), done.
error: pack-objects died of signal 13
error: failed to push some refs to 'git@github.com:example/example.git'
Run Code Online (Sandbox Code Playgroud)
不确定这意味着什么.
我们有一个巨大的多 GB git 存储库,主要是二进制对象。
克隆需要几天时间。
实际的主分支(没有历史记录)只有大约 20MB,所以我想,深度为 1 的 git 克隆是解决问题的方法。
然而,现在我需要将某人的更新拉到主服务器(我们没有分支),当我拉时,没有深度选项/参数,所以它下载了全部 2GB。
有没有办法只拉master而不拉历史?
我是 git noob(我只使用乌龟 git),但我是 SVN、CVS 等方面的专家。
注1:我们曾经使用SVN,它没有这样的问题,但我们相当非技术的IT总监认为将git强加给整个公司会很好,即使是那些主要使用二进制媒体、flash、js等的公司。
注2:我看到这篇文章:Pull update with git after cloned with --depth 1但我不明白它。
有没有一种方法可以让git pullkeepdepth=1只使用最新的提交,而不是 git clone 所做的提交(如果有更新的提交)?
我做git clone -b some_branch --depth=1 git_repo.git
它以最小的空间使用量克隆存储库,因为它删除了所有历史记录。现在,如果我需要再次更新该存储库并使用git pull,它会提取整个历史记录。
这里有一个类似的问题:
如果尝试接受答案建议并使用git pull --unshallowthen git pull --depth=1,看起来它不会像git clone --depth=1以前那样减少空间。
因此,真正减少存储库大小的唯一方法就是删除存储库并depth=1再次克隆?看起来有点笨拙的方法。
我需要这个的原因是,完全克隆时使用了一些存储库,目前的~3 GB大小大约是这样。使用它的环境大约有 40 个。所以总的来说,它使用了大量的空间。如果是浅克隆,可以减少5倍左右。
样本:
克隆此存储库分支 12.0 git@github.com:odoo/odoo.git,显示其大小约为 3 GB。
使用 克隆此存储库分支 12.0 depth=1,显示大小为 643 MB。
使用--unshallowon pull 然后(按照此处的建议将 git 存储库转换为浅层?):
git pull --depth 1
git gc --prune=all
Run Code Online (Sandbox Code Playgroud)
似乎没有像浅克隆那样缩小大小。