Tüm Git etiketleri nasıl listelenir?


675

Depomda, aşağıdaki komutları kullanarak etiketler oluşturdum.

git tag v1.0.0 -m 'finally a stable release'
git tag v2.0.0 -m 'oops, there was still a major bug!'

Depodaki tüm etiketleri nasıl listeliyorsunuz?

Yanıtlar:


955
git tag

yeterli olmalı. Bkz. git tagSayfa


Ayrıca:

git tag -l <pattern>

Verilen kalıpla eşleşen adlara sahip etiketleri (veya kalıp verilmemişse tümünü) listeleyin.
Bağımsız değişkenler olmadan "git tag" yazıldığında, tüm etiketler de listelenir.


Daha yakın zamanda ( Git 2.0+ için " git etiketleri nasıl sıralanır? ")

git tag --sort=<type>

Belirli bir sıraya göre sıralayın.

Desteklenen tür:

  • " refname" (sözlükbilimsel düzen),
  • " version:refname" veya " v:refname" (etiket adları sürüm olarak kabul edilir).

Sıralama düzenini tersine çevirmek için "-" işaretini ekleyin.


Bu her ikisini de listeler:

  • açıklamalı etiketler : Git veritabanında depolanan tam nesneler. Onlar kontrol toplamlıdır; etiketleyici adını, e-postasını ve tarihi içerir; etiketleme mesajı almak; ve GNU Privacy Guard (GPG) ile imzalanabilir ve doğrulanabilir.
  • hafif etiketler : mevcut bir işleme basit bir işaretçi

Not: etiketlemeye ilişkin git hazır makalesi , hafif etiketin onaylanmamasını sağlar.

Değişkenler olmadan git etiketi, temelde hiç hareket etmeyen bir dal olan “hafif” bir etiket oluşturur.
Bununla birlikte, belki de bilinen iyi (veya kötü) bir sürümü veya ileride kullanmanız gerekebilecek bir grup taahhüdü işaretlemek için hafif etiketler hala yararlıdır.
Bununla birlikte, muhtemelen bu tür etiketleri zorlamak istemezsiniz .

Normalde, en azından imzasız bir etiket oluşturmak için -a seçeneğini geçmek veya etiketi -s veya -u seçenekleri aracılığıyla GPG anahtarınızla imzalamak istersiniz.


Bununla birlikte, Charles Bailey , bir ` git tag -m "..."` aslında -ahafif değil, uygun (imzasız açıklamalı) bir etiket (seçenek ' ') ima ettiğine dikkat çekiyor . Yani ilk komutunuzda iyisiniz.


Bu aşağıdakilerden farklıdır:

git show-ref --tags -d

Hangi etiketleri taahhütleriyle listeler (bkz. " Git Tag list, display commit sha1 hashes ").
Not -d(onların işlemek kendi SHA1 var) açıklamalı etiket nesnesi çözümlemesi ve taahhüt etiketli bir gerçek görüntülemek için.

Benzer şekilde, git show --name-only <aTag>etiketi ve ilişkili taahhüdü listeler.


6
Muhtemelen -m veya -F imalarını -a (-a, -s veya -u olmayanlar açıkça belirtilmişse) eklemeye değer. 'Uygun' etiket nesnesi oluşturmadan etiket mesajınız olamaz.
CB Bailey

1
Kendime not: Bu upvote ile, 700000'e ulaştıktan bir yıl ve bir ay sonra Stack Overflow'da 800000'i (31 Ağu 2018) geçiyorum (6 Ağustos 2017) .
VonC

190

Etiketleri listelemek için:

git tag -n

-nBayrak etiketiyle birlikte açıklama mesajın ilk satırını görüntüler veya etiket açıklamalı değilse ilk mesaj hattını işlemek.

git tag -n5Ek açıklamanın ilk 5 satırını da gösterebilirsiniz.


48

Ayrıca git show-ref, etiketleri karşılık gelen taahhütlerle doğrudan ilişkilendirebilmeniz için oldukça kullanışlıdır :

$ git tag
osgeolive-6.5
v8.0
...

$ git show-ref --tags
e7e66977c1f34be5627a268adb4b9b3d59700e40 refs/tags/osgeolive-6.5
8f27e65bddd7d4b8515ce620fb485fdd78fcdf89 refs/tags/v8.0
...

1
Mercurial'ın alışkın hg tagsolduğum gibi git show-refbana etiket VE revizyon verir.
Justin


15

Yapmaya çalışın git tagbunu yapmak için denemek değilse yeterli olacaktır git fetchsonra git tag.


4
Bence bu şu: git tagSadece mevcut etiketlerin bir listesini görmek istiyorsanız Koşu komutu yeterli olmalıdır. Uzaktan kumandada olabileceğini düşündüğünüz bazı etiketleri göremiyorsanız, yerel etiketleriniz uzaktan kumanda ile senkronize olmayabilir. Bu durumda, en son referansları / kafaları önce uzaktan git fetch, ardından gerçek olandan getirin git tag. Genellikle böyle bir astarı çalıştırırım: $ git fetch -p && git tagsadece en son ve en mükemmel şekilde baktığımdan emin olmak için.
demisx

11

Git'te kullanılabilir etiketlerin listelenmesi kolaydır. Sadece yazın git tag(isteğe bağlı -lveya ile --list).

$ git tag
v5.5
v6.5

Belirli bir kalıpla eşleşen etiketleri de arayabilirsiniz.

$ git tag -l "v1.8.5*"
v1.8.5
v1.8.5-rc0
v1.8.5-rc1
v1.8.5-rc2

Git deposunda son etiketi alma

Komut, bir taahhütten erişilebilen en son etiketi bulur. Etiket, taahhüdü gösteriyorsa, yalnızca etiket gösterilir. Aksi takdirde, etiket adını etiketli nesnenin üstündeki ek taahhütlerin sayısı ve en son tamamlanan işlemin kısaltılmış nesne adı ile son ekler.

git describe

Olarak --abbrevayarlandığında 0, komut tagnameherhangi bir sonek olmadan en yakın olanı bulmak için kullanılabilir :

git describe --abbrev=0

Diğer örnekler:

git describe --abbrev=0 --tags # gets tag from current branch
git describe --tags `git rev-list --tags --max-count=1` // gets tags across all branches, not just the current branch

Uzaktan kumandada bulunmayan yerel git etiketlerini budama

Basitçe söylemek gerekirse, benzer bir şey yapmaya çalışıyorsanız git fetch -p -t, git sürümünden başlayarak çalışmayacaktır 1.9.4.

Ancak, en son sürümlerde çalışan basit bir geçici çözüm vardır:

git tag -l | xargs git tag -d  // remove all local tags
git fetch -t                   // fetch remote tags

Rev-liste ilgili komut Bana bir liste verdi ama hatayla sona erdi:v0.1.0-rc1 fatal: No tags can describe '5db7534...4a94'. Try --always, or create some tags.
not2qubit

10

Kullanabileceğim en son etiketle ilgili ayrıntıları görmek için bazen kullanıyorum:

git show `git describe` --pretty=fuller

6

Etiket adınızı yerel olarak kontrol etmek istiyorsanız, etiket oluşturduğunuz yola (yerel yol) gitmeniz gerekir. Nesnelerinizi nereye koyduğunuz anlamına gelir. Ardından command yazın:

git show --name-only <tagname>

Bu etiket adının altındaki tüm nesneleri gösterecektir. Teradata'da çalışıyorum ve nesne görünüm, masa vb.


4

Tüm mevcut etiketleri listeleyebilirsiniz git tagveya birlikte listeye filtre olabilir git tag -l 'v1.1.*', *joker olarak davranır. İle işaretlenmiş etiketlerin bir listesini döndürür v1.1.

Aradığınızda git tagek açıklamalarınızın içeriğini göremediğinizi göreceksiniz. Onları önizlemek için eklemek gerekir -nkomutunuza: git tag -n2.

$ git tag -l -n2

v1.0 Sürüm 1.0

v1.1 Sürüm sürümü 1.1

Komut, etiket iletilerinde en fazla 3 satır içeren mevcut tüm etiketleri listeler. Varsayılan olarak -nyalnızca ilk satırı gösterir. Daha fazla bilgi için bu etiketle ilgili makaleyi de kontrol ettiğinizden emin olun .


0

Bir GUI bunu yapmak için ben sadece 'gitk' adlı görünümleri destekler bulduk. Görünümlerin taahhütleri seçmek için çeşitli seçenekleri vardır. Kullanışlı olanlardan biri "Tüm etiketler" i seçmek için bir kutudur. Etiketleri görmek benim için işe yarıyor gibi görünüyor.

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.