Git push&“错误:索引包死于信号9". [英] Git push "error: index-pack died of signal 9"

查看:61
本文介绍了Git push&“错误:索引包死于信号9".的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我看过几个类似的 问题,但是无法解决我的问题,所以我问再次.

I've seen a couple of similar questions to this, but haven't been able to solve my problem so am asking again.

我在现有的启用git的项目中添加了新文件的负载,并试图将其推高.当我执行推送时,它会压缩它们,然后将其写入,然后达到%100时会失败,并显示以下错误:

I added a load of new files to an existing git-enabled project and am trying to push them up. When I do the push, it compresses them, then writes them, then when it gets to %100 it fails out with this error:

error: index-pack died of signal 9 332.28 MiB | 5712 KiB/s   
error: pack-objects died with strange error
error: failed to push some refs to     '<username>@<my repo location'

到目前为止我已经尝试过的事情:

Things i have tried so far:

  1. 转到存储库并确保所有内容均可写,例如建议在此处a>

在.gitattributes中的某些文件类型上设置 binary -delta 选项

setting the binary -delta option on some filetypes in .gitattributes

将某些文件夹移出(并git提交删除),以便以后将它们分别添加回去.

moving some of the folders out (and git committing the delete) with a view to adding them back individually later.

我有点想法...:/有什么建议吗?感谢您的任何建议-max

I'm kind of out of ideas... :/ Any suggestions? Grateful for any advice - max

编辑-从那以后,我发现这是由于Dreamhost由于过多的内存消耗而取消了推送(我通过将我的应用程序文件夹复制到dreamhost上的回购服务器并从那里进行推送来实现此目的).

EDIT - I've since discovered that this is due to dreamhost killing the push due to excessive memory consumption (i did this by copying my app folder to the repo server on dreamhost and doing the push from there).

我已经找到一些

I've found some pages, - that talk about a NO_MMAP=1 option in git to help prevent this, but they talk about it in terms of configuring git when it's installed. Can i set this option in an existing git install? Is it part of the config for the git-inited app that's doing the push or is it part of the config for the repo?

编辑2-按照上一页的说明,我下载并制作了自己的本地git二进制文件,并设置了NO_MMAP = 1选项.

EDIT 2 - following the instructions on the page above, I downloaded and made my own local git binaries, with the NO_MMAP=1 option set.

我确保它们在我的路径中位于Dreamhost安装的版本之前,并且到目前为止,哪个git"显示了我的本地版本.但是,我遇到了完全相同的问题.

I made sure these were before the dreamhost-installed versions in my path, and "which git" shows my local version, so far so good. But, i get exactly the same problem.

为了使NO_MMAP选项正常工作,我是否需要对我的存储库做一些事情,或者您认为还有其他问题吗?

Do i need to do something with my repo to make the NO_MMAP option work, or is the problem something else do you think?

推荐答案

对于某些操作,Git会占用一定的内存,因此要交换内存使用量以获得改进的磁盘或网络性能.(例如,请参见有关

Git is somewhat memory intensive for certain operations, trading memory usage to get improved disk or network performance. (See for example some discussion on this other SO question.)

在这种情况下,我认为您和您的同事正在有效地进行不同的成本权衡:您正在使用专业管理的Git托管服务(例如 BitBucket ),既可以节省金钱,也可以提供其他便利(也许部署?).

In this case, I think you and your colleagues are effectively doing a different cost trade-off: you are trading off using a professionally managed Git hosting service (such as GitHub or BitBucket) for either perceived financial savings or some other convenience (perhaps deployment?).

如果您不满意所引用的wiki/blog-post上的各种建议,我的建议是移至GitHub或Bitbucket.(我认为这些帖子提供了技术上准确的解决方案,FWIW.)Bitbucket提供免费的无限私人存储库,因此没有真正的成本理由将Dreamhost用作您的Git托管.

My recommendation, if you are not comfortable following the kinds of recommendations on the wiki/blog-post that you've cited, is to move to GitHub or Bitbucket. (I think those posts offer technically accurate solutions, FWIW.) Bitbucket offers free unlimited private repositories so there's no real cost reason to use Dreamhost for your Git hosting.

如果您需要某种与主机一起使用的部署解决方案,则可以设计出需要推送的内容,并自动将工作目录自动更新到Dreamhost进行主机托管,而不会产生托管Git信息库(以及所有主机)的全部费用.您的历史记录)在Dreamhost上.

If you need some sort of deployment solution to go along with the hosting, you can engineer something that takes pushes and automatically updates just the working directory to Dreamhost for hosting, without incurring the full cost of hosting a Git repository (and all of your history) on Dreamhost.

这篇关于Git push&amp;“错误:索引包死于信号9".的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆