Uzak etiketleri nasıl görebilirim?


136

Atlassian SourceTree'de hangi etiketlerin yalnızca yerel ve hangilerinin uzak olduğunu nasıl bilebilirim?

Bir etiket oluştururken "Etiketi şu konuma itin: ..." seçeneğini alırsınız, ancak bir etiketin oluşturulduktan sonra itilip aktarılmadığını nasıl anlarsınız? Tüm etiketlerimi yerel olarak görebiliyorum, ancak diğer geliştiricilerin onları çekebilmesi için uzaktan bulunduklarından emin olmam gerekiyor.


Aşağıdaki cevabımı özellikle Atlassian SourceTree'ye hitap edecek şekilde güncelledim .
VonC

Yanıtlar:


121

Klonlamadan veya getirmeden bile, yukarı akış deposundaki etiketlerin listesini şunlarla kontrol edebilirsiniz git ls-remote:

git ls-remote --tags /url/to/upstream/repo

(" git-ls-remote listelenirken neden ^{}etiket adından sonra " " var ? " bölümünde gösterildiği gibi )

xbmono göstermektedir yorumlarda tırnak ihtiyaç olduğunu:

git ls-remote --tags /some/url/to/repo "refs/tags/MyTag^{}"

Kaydetmelerinizi ve etiketlerinizi her zaman tek komutta (git 1.8.3+, Nisan 2013) itebileceğinizi unutmayın:

git push --follow-tags

Git kaydetme ve etiketlerini aynı anda itme konusuna bakın .


Atlassian SourceTree ile ilgili olarak özellikle:

Not, bundan bu konuya , SourceTree SADECE yerel etiketleri gösterir.

SRCTREEWIN-4015Aralık 2015'ten beri giriş yapılan bir RFE (Geliştirme Talebi) var .

Basit bir çözüm:

yalnızca gönderilmemiş etiketlerin bir listesini görüyor musunuz?

git push - etiketler

veya Push all tags"İt" iletişim kutusundaki "" kutusunu işaretleyin, tüm etiketler uzaktan kumandanıza gönderilecektir.

https://community.atlassian.com/tnckb94959/attachments/tnckb94959/sourcetree-questions/10923/1/Screen%20Shot%202015-12-15%20at%208.49.48%20AM.png

Bu şekilde, "diğer geliştiricilerin onları çekebilmesi için uzaktan kumandada bulunduğundan emin olacaksınız".


3
Bu harika ama bunu git komut satırı değil, Atlassian SourceTree ile nasıl bileceğimi soruyordum.
cprcrack


refs/tags/MyTag^{}Bu etikete bağlı commit kimliği almaya çalıştım ama bu komut git ls-remotehiçbir şey döndürmüyor. Başvurusu yapılan bir etiketin kaydetme kimliğini almanın herhangi bir yolu var mı?
xbmono


1
@xbmono İyi yakaladın! Daha fazla görünürlük için yorumunuzu cevaba ekledim.
VonC

145

İle uzak depodaki etiketleri listeleyebilir ve ls-remoteorada olup olmadığını kontrol edebilirsiniz. Uzak referans adının originaşağıdaki gibi olduğunu varsayalım .

git ls-remote --tags origin

Ve ile yerel etiketleri listeleyebilirsiniz tag.

git tag

Sonuçları manuel olarak veya komut dosyası içinde karşılaştırabilirsiniz.


1
@VonC Daha hızlısınız. :) gitAşina olmak için daha fazla soru çözmeye çalışıyorum git. :)
Landys

Sorun değil: 2008'in sonlarından beri Git'i bu şekilde öğreniyorum.
VonC

1
Bu harika ama bunu git komut satırı değil, Atlassian SourceTree ile nasıl bileceğimi soruyordum.
cprcrack

2
@cprcrack Atlassian SourceTree'nin GUI'de uzak etiketleri görüntüleme özelliği sağlayıp sağlamadığını soruyordunuz, değil mi? Kaba bir görünüme sahibim ve öyle görünmüyor. Ama neden sadece menüye tıklamıyorsunuz?Actions -> Open in Terminal ardından yazıp git ls-remote --tags originçalıştırmıyorsunuz?
Landys

2
@Landys Teşekkürler, bu faydalı. Uzak etiketleri listelerken, çift girişler görüyorum. Postfix ^ {} haricinde fark kimliği ama aynı etiket adına sahipler. Örnek: release-v1.0, release-v1.0 ^ {}, release-v1.1, release-v1.1 ^ {}, vb. Bu ekstra girişlerin ne olduğunu biliyor musunuz? Ekstra girişlerin fark kimliği olmasına rağmen git log <ID> aynı çıktıyı verir.
shiouming
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.