git - 如何以最佳方式在服务器上进行 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。知道如何将我的项目拉到服务器上吗?
请注意,实际上有真实姓名而不是***
.
解决方案
git pull
要限制在提取操作 ( uses )期间使用的内存量git fetch
,您可以使用该--depth
标志。
只需运行git pull --depth=10
并增加 number 以获取越来越多的历史记录(如果内存不足,则减少它)。一旦您在历史记录中加载了足够的对象,您可以使用请求剩余对象git fetch --unshallow
深度拉取的缺点是您的存储库将占用更多磁盘空间,因为它还必须考虑存储库的多种状态
推荐阅读
- javascript - 是否可以根据存储在我的 Rails 数据库中的信息以不同的方式动态设置 Mapbox 标记的样式(svg 填充颜色)?
- javascript - 我们如何为 ex_date(ddsf#dsd) 编写正则表达式?
- c++ - 运行时错误:基数为 0x000000000000 的指针索引表达式溢出到 0xffffffffffffffff (basic_string.h)
- flutter - 如何在顶部附加新的 ListView 项目
- svelte - 历史推送状态功能后,Sapper后退按钮不起作用
- acumatica - 如何自定义费用报销屏幕上的审批按钮
- jenkins - 如何将值从 Jenkins 函数返回到构建阶段?
- excel - 从用户窗体的列表框中删除选定的行
- node.js - Invariant Violation:对象在 React App 中作为 React 子项无效
- compiler-errors - 编译 C 代码时编译器中的段错误