Git'i en son revizyonu almak için kullanma


380

Git kullanan bir projeyi izlemek istiyorum. Deponun tamamını ve geçmişini klonlamak istemiyorum, sadece en son revizyonu istiyorum ve uzak projeden yeni revizyonları güncelleyebilmek istiyorum.

Git klonunu kullanmayı denedim, ancak bu tüm deponun bir kopyasını oluşturuyor (büyük dosya boyutu) ve değişiklikleri izlemek disk alanını daha da büyük hale getiriyor (100mb dosya artık 2GB'ın üzerinde yer alıyor).

Yama göndermeyeceğim ve tarihe ihtiyacım yok. Sadece alt sürümdeki gibi en son sürümü istiyorum.

Git'te bu mümkün mü?


2
Git 1.9 / 2.0 (1Ç 2014) sığ klonlama ile çok daha verimli olacak: stackoverflow.com/a/21217267/6309 ve stackoverflow.com/a/21217326/6309
VonC

Yanıtlar:


552

Aşağıdaki --depthseçeneklerde kullanın git clone:

Belirtilen taahhüt sayısına bölünmüş bir geçmişe sahip sığ bir klon oluşturun .

misal: git clone --depth=1 <remote_repo_url>


87
örnek:git clone --depth=1 <remote_repo_url>
iDev247

14
Git 1.9'daki 82fba2b komutundan bu yana bu sınırlamalar artık mevcut değil.
niutech

1
Ne sınırlamaları?
Cahil

4
@Triangles: Sınırlamalar (artık geçerli değil): Sığ bir havuzun bazı sınırlamaları vardır (onu klonlayamaz veya getiremez, ne de içine itemezsiniz), ancak yalnızca büyük bir geçmişin yakın geçmişiyle ilgileniyorsanız yeterlidir uzun bir geçmişe sahip proje ve düzeltmeleri yamalar olarak göndermek istiyorum.
odinho - Velmont


79

Sığ klon ( git clone --depth=1 <URL>) yapmak için alternatif çözüm , uzak taraf destekliyorsa --remote, git arşivi seçeneğini kullanmak olacaktır :

$ git archive --format=tar --remote=<repository URL> HEAD | tar xf -

Veya, söz konusu uzak depo gitweb veya GitHub gibi bazı web arayüzlerini kullanarak göz atılabiliyorsa, 'anlık görüntü' özelliğine sahip olma şansı vardır ve web arayüzünden en son sürümü (sürüm bilgisi olmadan) indirebilirsiniz.


4
Ancak bu çözüm bu gereksinimi karşılamayacaktır: "Uzak projeden yeni düzeltmeleri güncelleyebilmek istiyorum". Temel olarak arşivi indirdiğinden, bir veya iki taahhüdü hızlı bir şekilde ileriye taşıyamaz. "Sığ klon" buna izin verir. Yine de, bu çözümün kullanım durumları olduğunu düşünüyorum, bu yüzden bahsetmeye değer.
VasiliNovikov
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.