在rebase期间git崩溃

时间:2011-10-07 21:16:20

标签: git git-rebase

我在存储库中有相当多的文件。因此,在变基改变期间,由于内存不足异常,git有时会崩溃。

E.g。

git checkout feature
git rebase master
(nasty out of memory exception)
.....

所以一旦我得到了那个例外,我再次尝试重新定位

git rebase master

它告诉我,分支feature是最新的。这看起来很奇怪,因为rebase以异常结束。

有没有办法避免异常?可能会以某种方式告诉git使用较少的内存量。此异常可能是存储库损坏的原因吗?如果它导致损坏,有没有办法安全地将在rebase期间所做的更改回滚到状态git rebase master之前的状态?

3 个答案:

答案 0 :(得分:8)

答案 1 :(得分:2)

您可能正在VM上运行它或正在存储一些大文件。如果可以,可以过滤分支大文件或增加内存:/

除非我有更多信息,否则我无法添加其他内容..

答案 2 :(得分:0)

git rebase $BASEgit reset --hard $BASE

开始

如果由于内存不足而导致崩溃,则意味着您的分支指针指向$BASE,而不是之前指向的提交。

这就是为什么当你再次feature时,git rebase master被告知feature是最新的,因为master已经指向与git reset --hard HEAD@{1}`. 之后相同的提交内存崩溃。

要将分支重置为之前的原始提交,请运行

git reflog

或者,如果您在崩溃后在分支上完成了其他工作,请运行git rebase -m master 以查找原始提交。

另见Undoing a git rebase


将分支恢复到原始提交后,您可以尝试

{{1}}

如果您有大型二进制文件,它将尝试使用不同的rebase策略,这可能会占用更少的内存。