Git推送-选择:内存不足

问题描述 投票:0回答:2

对于游戏开发项目,我们有一个包含大型二进制文件的 git 存储库。结账总大小在 10-70MB 到 ~700MB 之间。

我正在使用以下软件:

  • Windows 7 64 位
  • Git [git 版本 1.9.4.msysgit.2] + open-ssh
  • Tortoise Windows 客户端 64 位

当我尝试推送(初始推送)到 github 时,出现以下错误(进度始终约为 170MB):

git.exe push -v --progress  "origin" master:master

Pushing to [email protected]:totallymorten/ue4-test.git
Counting objects: 407, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (402/402), done.
select: Not enough memory
fatal: sha1 file '<stdout>' write error: Invalid argument
fatal: The remote end hung up unexpectedly
error: failed to push some refs to '[email protected]:totallymorten/ue4-test.git'


git did not exit cleanly (exit code 1) (573007 ms @ 12-11-2014 16:50:48)

有趣的是,如果我在我的 Linux 工作站上尝试完全相同的操作,它就会起作用!

我已经尝试了使用 Putty plink 而不是 OpenSSH 的所有组合,并且我还尝试了 https:// 作为替代协议。到目前为止,在 Windows 上还没有任何效果。不过,我收到了另一条带有 https:// 的错误消息,我怀疑我可以增加 POST 缓冲区大小以使其正常工作...但我真的更喜欢 SSH。

我知道有各种解决方法,例如子模块和 git-annex,还有其他帖子,例如:

git-clone内存分配错误

Git 存储库重新打包失败

但我没有发现任何东西能真正帮助我的问题。

任何评论表示赞赏,

谢谢,

莫滕。

windows git github large-files
2个回答
0
投票

Git 是为版本控制而设计的,例如包含代码或文本的小文件。

静态文件,特别是大文件应该从你的 GIT 中排除,因为这正是你所遇到的问题。因此,创建一个新文件夹并排除该二进制文件,就没有问题了。

将该文件夹放入您的 .gitignore 中。

看看那个项目。如果您需要对大文件进行版本控制

https://git-annex.branchable.com


0
投票

好吧,我终于开始工作了:

  • 安装CygWin 64位,然后使用64位版本的git(只需在选择组件时选择安装git)即可完美运行。
  • 一个缺点是你不能使用像 TortoiseGit 这样的图形客户端。有些人已经让它工作使用包装器,但我很难让一切正常工作......所以我现在会坚持使用命令行客户端。

** 编辑 **

实际上您可以直接通过 CygWin + git 64 位使用 sourcetree。只需指向源树设置中的 git 可执行文件,如下所示:

  • git 二进制文件:c
© www.soinside.com 2019 - 2024. All rights reserved.