我已经看到了几个similar questions,但未能解决我的问题,所以再问一遍。
我在现有的启用git的项目中添加了大量新文件,并尝试将其推送。当我执行推送时,它会压缩它们,然后写入它们,然后当它达到%100时,它会因此错误而失败:
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'
到目前为止我尝试过的事情:
进入回购并确保一切都可写,如建议的here
在.gitattributes中的某些文件类型上设置binary -delta
选项
移出一些文件夹(和git提交删除),以便稍后再单独添加它们。
我有点想法......:/有什么建议吗?感谢任何建议 - 最多
编辑 - 我发现这是因为dreamhost由于过多的内存消耗而导致推送(我通过将我的app文件夹复制到dreamhost上的repo服务器并从那里进行推送)。
我found一些pages, - 谈论git中的NO_MMAP=1
选项以帮助防止这种情况,但他们在配置git时会谈到它。我可以在现有的git安装中设置此选项吗?它是git-inited应用程序的配置的一部分正在进行推送还是它是repo配置的一部分?
编辑2 - 按照上面的说明,我下载并制作了我自己的本地git二进制文件,并设置了NO_MMAP = 1选项。
我确定这些是在我的路径中安装了dreamhost的版本之前,并且“哪个git”显示了我的本地版本,到目前为止一直很好。但是,我得到完全相同的问题。
我是否需要使用我的仓库做一些事情才能使NO_MMAP选项有效,或者您认为问题还有其他问题吗?
答案 0 :(得分:4)
在这种情况下,我认为您和您的同事正在有效地进行不同的成本权衡:您正在使用专业管理的Git托管服务(例如GitHub或BitBucket)进行折衷感知节省的资金还是其他一些便利(也许是部署?)。
我的建议,如果你不熟悉你所引用的wiki / blog-post上提出的各种建议,那就是转移到GitHub或Bitbucket。 (我认为这些帖子提供了技术上准确的解决方案,FWIW。)Bitbucket提供免费无限制的私有存储库,因此没有真正的成本理由将Dreamhost用于您的Git托管。
如果您需要某种部署解决方案来配合托管,您可以设计一些需要推送并自动更新工作目录到Dreamhost进行托管的内容,而不会产生托管Git存储库的全部成本(以及所有你的历史)在Dreamhost上。
答案 1 :(得分:3)
有时,由于负载问题,企业github会发生这种情况。我发现一个好方法是将克隆分成两个操作,这样可以减轻服务器的负担。
首先,做一个浅层克隆:git clone --depth 1 myRepo.git
接下来,输入克隆,并获取所有其余历史记录以进行完整克隆:cd myRepo && git fetch --unshallow
如果您的旧版本的git不支持--unshallow标志,那么您可以改为执行git fetch --depth=1000000
或其他适当大数字的操作。
本博文中讨论了更多替代方案:https://blogs.atlassian.com/2014/05/handle-big-repositories-git/
答案 2 :(得分:1)
如果您使用Dreamhost服务器来保存裸存储库,则可以在本地添加和提交,然后将.git目录rsync同步到DH。完成后,进入服务器的[存储库名称] .git / config并将core.bare从false更改为true。
如果您想在服务器上使用工作树,并不确定您要做什么,它还没有找到我。
答案 3 :(得分:1)
Mac 用户
就我而言,我使用了 index.html
,它把 brew install git
中的 git 搞砸了
运行 xcode
修复了问题
答案 4 :(得分:0)
我遇到了这个问题,但是我的问题是由Capfile的问题引起的 - capistrano已经更新,而且更改没有反映在capfile中。
将capfile更新为已修复的最新标准......
答案 5 :(得分:0)
我也遇到了这个错误。对我来说,解决方案是增加服务器上的内存容量。这样做之后,错误消失了。