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

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

问题描述

我见过几个类似的 问题,但一直未能解决我的问题,所以问再次。

我在现有的支持git的项目中添加了一些新文件,并试图推送它们。当我执行推送时,会压缩它们,然后写入它们,然后当它达到%100时,会失败并出现此错误:

 错误:index-pack死于信号9 332.28 MiB | 5712 KiB / s 
错误:pack-objects死于奇怪错误
错误:无法将某些参考推送到<用户名> @<我的回购地点'
$ b


  1. 转到回购站并确保所有内容都是可写的,例如建议的此处

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


  2. 将某些文件夹移出(并提交git提交删除),以便稍后逐个添加它们。


我有种想法......:/有什么建议?感谢任何建议 - 最大



编辑 - 我自从发现这是由于Dreamhost杀死推动由于过度消耗内存(我通过复制我的应用程序文件夹到Dreamhost上的回购服务器,并从那里进行推送)。



我已找到一些 pages , - NO_MMAP = 1 git中的选项有助于防止这种情况发生,但是他们在安装git时对它进行了讨论。我可以在现有的git安装中设置此选项吗?它是git-inited应用程序配置的一部分,它正在执行推送,还是它是配置回购的一部分?

编辑2 - 按照上面的页面中,我下载并创建了自己的本地git二进制文件,并设置了NO_MMAP = 1选项。



我确定这些是在我的路径中的dreamhost安装版本之前,以及哪个git显示我的本地版本,到目前为止非常好。但是,我得到完全相同的问题。



我需要使用我的repo来做些什么来使NO_MMAP选项正常工作,或者您遇到了其他问题?
<解决方案

Git对于某些操作有点内存密集,交易内存使用以获得改进的磁盘或网络性能。 (例如,参见关于

在这种情况下,我认为您和您的同事正在有效地进行不同的成本折中:您是使用专业管理的Git托管服务(如 GitHub BitBucket )既可以实现财务节约也可以实现其他一些便利(可能是部署?)。

我的建议是,如果你在你引用的wiki / blog-post上提出的各种建议是不愿意迁移到GitHub或Bitbucket的。 (我认为这些帖子提供了技术上精确的解决方案,FWIW。)Bitbucket提供免费的无限制私人存储库,因此使用Dreamhost进行Git托管没有真正的成本理由。

如果你需要某种部署解决方案来配合托管,您可以设计一些需要推送的东西,并自动将工作目录更新为Dreamhost进行托管,而无需承担托管Git存储库(以及所有历史记录)的全部费用Dreamhost。


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

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. going to the repo and making sure everything is writable, like suggested here

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

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

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

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?

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.

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.

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 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.)

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?).

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.

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“错误:索引包死于信号9”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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