2014-10-28 13 views
7

Bir etikette maksimum 1 derinliğe sahip bir depoyu klonlarsam, çalışır ve aşağı çeker. Daha sonra yeni bir etiket için 1 veya daha derin olmayan bir getirme yapmak istiyorsam, bazı işlemler yapar, ancak etiket hiçbir zaman 'git etiketi' altında görünmez. --tags seçeneğini sağlarsam, yalnızca yeni bilgiler yerine tüm depoyu indirir. Deponun daha fazla tarih almasını umursamıyorum, sadece indirme sürelerinden kaçınmak istiyorum. Tüm etiketleri sığ klonlanmış bir depodan almadan yeni bir etiket almanın bir yolu var mı?Git Yeni bir etiket sığa getirme

Şimdi
git clone --branch 1.0 --depth 1 repositoryPath 
git fetch --depth 1 origin tags/1.1 # Does processing but no new tags 
git fetch --tags origin tags/1.1 # Pulls down the rest of the repository and adds all tags 
git fetch --depth 1 --tags origin tags/1.1 # Same as above 

, ben belgelerinde bu fark etmiş: "derinleştirilmiş kaydedilmesini için --depth ... Etiketler getirilen değildir."

Bu benim içine girdiğim şey mi? Tüm etiketleri indirmenin yanında bunu yapmanın bir yolu yok mu?

cevap

7

Tam <refspec> biçimini kullanabilirsiniz: (<refspec> altında) git-fetch options belirtilen

git fetch --depth 1 origin refs/tags/1.1:refs/tags/1.1 

Veya:

tag <tag>refs/tags/<tag>:refs/tags/<tag> aynı anlamı; , her şeyi verilen etikete getirmeyi ister.

Yani sorunuza kısa form cevap yaptığını,

git fetch --depth 1 origin tag 1.1 
+0

Müthiş olurdu. Refspec'i yeterince okumamıştım. Uzak bir yol koymak zorunda olduğunuzu hayal ettim: yerel değil. Sanırım kafa karıştırıcı kısmı, işe yaradığı gibi işe yaradı ... Teşekkürler –