2009-07-30 6 views
263

Git kullanan bir projeyi izlemek istiyorum. Tam depoyu ve tam geçmişi klonlamak istemiyorum, sadece en son revizyonu istiyorum ve uzak projeden yeni revizyonları güncelleyebilmek istiyorum.Sadece en son sürümü almak için git'i kullanma

Git clone'u kullanmayı denedim, ancak bu, tüm deponun bir kopyasını (büyük dosya boyutu) oluşturur ve izleme değişiklikleri disk alanını daha da büyütür (artık 100mb'lik dosyalar 2gb'nin üzerine çıkar).

Yamaları göndermeyeceğim ve tarihe ihtiyacım yok. Ben sadece subversion gibi son sürümü istiyorum.

Bu mümkün git?

+2

Git 1.9/2.0 (Q1 2014) sığ klonlama ile çok daha verimli olacaktır: http://stackoverflow.com/a/21217267/6309 ve http://stackoverflow.com/a/21217326/6309 – VonC

cevap

373

git clone yılında --depth seçeneğini kullanın: Bir tarih kaydedilmesini belirtilen sayıda olacak şekilde kesilir ile

bir sığ klon oluşturun.

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

uzak yan git archive ait --remote seçeneği kullanmak, destekliyorsa sığ klon yapmaya
+68

örnek: 'git git 1.9 klon --depth = 1 ' – iDev247

+13

yana [işlemek 82fba2b] (https://github.com/git/git/commit/82fba2b9d39163a0c9b7a3a2f35964cbc039e1a) bu sınırlamalar artık mevcut değil. – niutech

+1

Bu, http aktarımıyla çalışmaz. – Charles

64

Alternatif çözüm (git clone --depth=1 <URL>), şöyle olacaktır:

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

Veya, uzaktan depo eğer sözde gitweb veya GitHub gibi web arayüzü kullanarak göz atmak mümkün, o zaman 'snapshot' özelliğine sahip bir şans var, ve (web arayüzünden versiyonlama bilgisi.

+1

Bu çözüm bu gereksinimi karşılamayacaktır: "Uzak projeden yeni düzeltmeleri güncelleyebilmek istiyorum". Temel olarak arşivi indirdiğinden, bir taahhüt veya iki adımda hızlıca ilerleyemez. "Sığ klon" bunu sağlar. Yine de, bu çözümün kullanım durumları olduğunu düşünüyorum, bu yüzden söz etmeye değer. – VasyaNovikov