首页 > 解决方案 > 如何以最佳方式在服务器上进行 git pull?

问题描述

这两天我试图将我的项目(在 git 上)拉到我的服务器上。我的服务器有 1GB 内存并使用 Ubuntu 操作系统。(通常其他进程使用 200mb 的 RAM)

当我git pull origin master在服务器上运行时,它会抛出这个:

致命:内存不足,malloc失败(试图分配533517295字节)

致命:索引包失败

在此处输入图像描述

这也是结果nano .git/config

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    packedGitLimit = 512m
    packedGitWindowSize = 512m

[remote "origin"]
    url = https://***@bitbucket.org/***/***.g$
    fetch = +refs/heads/*:refs/remotes/origin/*

[pack]
  threads = 1
  deltaCacheSize = 512m
  packSizeLimit = 512m
  windowMemory = 512m

老实说,我无法为我的服务器获得更多 RAM。知道如何将我的项目拉到服务器上吗?

请注意,实际上有真实姓名而不是***.

标签: gitgit-pull

解决方案


git pull要限制在提取操作 ( uses )期间使用的内存量git fetch,您可以使用该--depth标志。

只需运行git pull --depth=10并增加 number 以获取越来越多的历史记录(如果内存不足,则减少它)。一旦您在历史记录中加载了足够的对象,您可以使用请求剩余对象git fetch --unshallow

深度拉取的缺点是您的存储库将占用更多磁盘空间,因为它还必须考虑存储库的多种状态


推荐阅读