2011-10-07 29 views
7

Depoda oldukça büyük miktarda dosya var. Böylelikle, gitme değişiklikleri sırasında bellek istisnası yetersiz kaldığında bazen çöker.Resase sırasında git çökmesi

E.g. O istisna alınca

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

Yani,

git rebase master 

rebasing tekrar denedi Ve o dal feature güncel olduğunu söyledi. Bu rebase, istisna ile bitmiş gibi garip görünüyor.

OOM istisnasından kaçınmanın herhangi bir yolu var mı? Her nasılsa git söylemek daha küçük miktarda bellek kullanın. Bu istisna havuz yolsuzluğuna neden olabilir mi? Eğer yolsuzluğa yol açıyorsa, git rebase master nolu telefondan daha önce olduğu gibi, rebase sırasında yapılan değişikliklerin güvenli bir şekilde geri alınması mümkün mü?

+0

Kural dışı durum ne dedi? Önemli olabilir. – Chris

+0

Şimdi yeniden üretemiyorum. Ama şu gibidir: 'blablabla bellek bitti, blablabla, malloc başarısız (100500 byte ayıramadı)' –

cevap

2

Bunu muhtemelen bir VM'de çalıştırıyorsunuz veya büyük dosyalar saklıyorsunuz. Filtre şube dışarı büyük dosyaları hafıza yükseltmek veya eğer: Ben fazla bilgiye sahip olmadıkça ekleyebilir Pek başka/

..

+1

Deponun bozulması hakkında ne var? –

+0

Büyük dosyalar derken ne demek istiyorsun? Git tüm değişiklikleri ramdaki depodan depolamak için değişiklik yapması gerekiyor mu? –

+0

Emin değilim. Ama deniyor olabilir. Tarihte sahip olduğunuz en büyük dosya ne kadar büyük? –

0

git rebase $BASE, git reset --hard $BASE

Yaparak başlar. Bu işlemden sonra bellek yetersiz kaldığında çöküyorsa, bununla birlikte kaldığınız anlamına gelir. Daha önce işaret ettiği taahhüt yerine $BASE işaret eden şube işaretçisi. Eğer feature güncel olduğunun söylenmesi nedeninizi

budur zaman zaten hafıza çökmesi out sonrası master olarak işlemek aynı işaret ediyor feature çünkü yine git rebase master.

geri orijinaline şube sıfırlamak önce bulunduğunuz işlemek,

git reset --hard [email protected]{1}`. 

çalıştırmak Yoksa git reflog çalıştırmak kazasında, sonra dal üzerinde başka işleri yaptıysanız orijinal taahhüt bulmak için.

geri orijinaline şube taahhüt aldıktan sonra, deneyebileceğiniz da Undoing a git rebase


görün muhtemelen varsa az bellek kullanan farklı Rebase stratejisini çalışacağız

git rebase -m master 

büyük ikili dosyalar.

İlgili konular