2012-10-26 28 views
6

3 yıldan fazla bir süre boyunca büyük bir depondayım var, bir yıldan uzun süredir olan değişikliklerin geçmişini silmek istiyorum. Mümkün mü? Git rebase kullanabilir ama nasıl?Git kaldır geçmişi kaldır

+0

Git, değişikliklerinizi kaydetmek için hazırlandı. Tarihin silinmesinin etkisi nedir? –

+0

Tarihçem çok büyük, .git dir 400 MB'dan büyük, tüm klonları indirmem gerekiyor :( – paweb

+0

Olası kopya: [Eski depoyu bir git deposundan nasıl silebilirim?] (Http://stackoverflow.com/questions/4515580/how-do-i-remove-the-old-history-from-a-git-repository) –

cevap

3

Örnek olarak, tam koşullarınızı kullanan this article from the Pro Git book numaralı git replace adlı kara büyüyü araştırın. Temel olarak, tarihte yeni bir kök olarak hareket etmek istediğiniz bir noktayı bulabilirseniz, onu hiç bir ailenin olmadığı, sanki ince bir havadan yapılmış gibi yapan bir taahhütle değiştirebilirsiniz. Orijinal ağacı tek bir makinede bile saklayabilirsiniz, böylece tekrar ihtiyacınız varsa geçmişi geri yükleyebilirsiniz.

git rebase (ve bu konu için git replace) ile ilgili bir sorunun, şubeler de dahil olmak üzere tüm ağacın yeniden yazılmasını istediğinizden emin olun, böylece hepsi farklı işlemlere işaret eder. Bu aynı zamanda, ekibinizdeki diğer kişilerin de değişikliklerini birleştirmesini zorlaştırmanın bir sonucudur, çünkü tüm ebeveynler daha önce sahip olduklarından farklı SHA'lara sahiptir.

+1

Okuduklarımdan , '' değiştir yerine'' şey, değişen-hashes-problemi etrafında çalışmayacak.Onman –

+1

@Jonas Haklısın.Onun net olması için cevabımı yeniden yapılandırdım. –

+1

Harika! karmaşanın içinde hiçbir değişiklik yapmadan bir sürü tarihin yerini tutabilirsiniz .. Sonuçta, bu şifreleme karmaları git kullanma nedenlerinden biridir. –