多个0.5GB二进制文件的GIT Rebase致命

GoZ*_*ner 12 git git-rebase

[这个问题基本上是在rebase期间重新打开git崩溃,从来没有答案]

我正在尝试从我的'secc'分支进行改造:

$ git rebase main
First, rewinding head to replay your work on top of it...
fatal: Out of memory, malloc failed (tried to allocate 553656577 bytes)         # about 0.5 GB
$ git rebase --abort
No rebase in progress?
Run Code Online (Sandbox Code Playgroud)

失败与两个分支及其共同祖先有三个.dat文件的事实有关,每个文件都是0.5 GB.

在这种情况下我该怎么办?

附加信息:

  • 'git merge main'工作得很好.
  • 使用'*.dat merge = keepTheirs'扩充.gitattributes并不能阻止致命.
  • *.dat文件确实不同.
  • 我愿意删除*.dat文件以重新绑定其他文件,然后添加回*.dat.但是怎么样?
  • 我正在使用git 1.7.9.4

GoZ*_*ner 1

在“git rebase”失败之前,您不会知道您的计算机是否足够大,但此时您的目录已处于 munged 状态。在变基期间,检出了另一个分支(主分支),以便可以将“secc”更改应用于它。恢复并继续:

git checkout secc
Run Code Online (Sandbox Code Playgroud)

正如您所指出的,变基失败后,您有两个选择:

  1. 如果不需要变基,请使用“git merge main”
  2. 获取更大的机器并重试“git rebase main”

您没有实际的选择来忽略 0.5GB 文件,进行变基,然后取回这些千兆文件。