Come elencare tutti i tag Git?


675

Nel mio repository, ho creato i tag utilizzando i seguenti comandi.

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

Come si elencano tutti i tag nel repository?

Risposte:


955
git tag

dovrebbe essere abbastanza. Vedi la git tagpagina man


Hai anche:

git tag -l <pattern>

Elenca i tag con nomi che corrispondono al modello dato (o tutti se non viene fornito alcun modello).
Digitando "tag git" senza argomenti, vengono elencati anche tutti i tag.


Più recentemente (" Come ordinare i tag git? ", Per Git 2.0+)

git tag --sort=<type>

Ordina in un ordine specifico.

Il tipo supportato è:

  • " refname" (ordine lessicografico),
  • " version:refname" o " v:refname" (i nomi dei tag sono trattati come versioni).

Prependi "-" per invertire l'ordinamento.


Questo elenca entrambi:

  • tag con annotazioni : oggetti completi memorizzati nel database Git. Sono checksummed; contiene il nome del tagger, l'e-mail e la data; avere un messaggio di tag; e può essere firmato e verificato con GNU Privacy Guard (GPG).
  • tag leggeri : semplice puntatore a un commit esistente

Nota: l' articolo git ready sull'etichettatura non approva il tag leggero.

Senza argomenti, il tag git crea un tag "leggero" che è fondamentalmente un ramo che non si muove mai.
I tag leggeri sono comunque utili, forse per contrassegnare una versione buona (o cattiva) nota, o una serie di commit che potrebbe essere necessario utilizzare in futuro.
Tuttavia, probabilmente non vuoi spingere questo tipo di tag .

Normalmente, si desidera almeno passare l'opzione -a per creare un tag non firmato o firmare il tag con la chiave GPG tramite le opzioni -s o -u.


Detto questo, Charles Bailey sottolinea che un ' git tag -m "..."' implica in realtà un tag (opzione ' -a') corretto (senza segno ), e non uno leggero. Quindi sei bravo con il tuo comando iniziale.


Questo differisce da:

git show-ref --tags -d

Che elenca i tag con i loro commit (vedi " Elenco dei tag Git, visualizza hash di commit sha1 ").
Nota al -dfine di dereferenziare l'oggetto tag annotato (che ha il proprio commit SHA1) e visualizzare il commit con tag effettivo.

Allo stesso modo, git show --name-only <aTag>elencherebbe il tag e il commit associato.


6
Probabilmente vale la pena aggiungere che -m o -F implica -a (se non di -a, -s o -u sono forniti in modo esplicito. Non è possibile avere un messaggio tag senza creare un oggetto tag 'corretto'.
CB Bailey

1
Nota per sé: con questo voto, passo 800000 (31 agosto 2018) su Stack Overflow, un anno e un mese dopo aver raggiunto 700000 (6 agosto 2017) .
VonC,

190

Per elencare i tag che preferisco:

git tag -n

Il -nflag mostra la prima riga del messaggio di annotazione insieme al tag o la prima riga del messaggio di commit se il tag non è annotato.

Puoi anche fare git tag -n5per mostrare le prime 5 righe dell'annotazione.


48

Inoltre git show-refè piuttosto utile, in modo da poter associare direttamente i tag ai commit corrispondenti :

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

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

1
Essere abituato a Mercurial hg tagsmi piace che git show-refmi dà il tag E la revisione.
Justin


15

Prova a farlo git tagdovrebbe essere sufficiente se non prova a farlo git fetchallora git tag.


4
Penso che significhi questo: git tageseguire il comando dovrebbe essere sufficiente se si desidera solo visualizzare un elenco di tag disponibili. Se non riesci a vedere alcuni tag che ritieni possano esistere sul telecomando, i tag locali potrebbero non essere sincronizzati con il telecomando. In questo caso, recupera prima gli ultimi ref / head dal telecomando git fetch, seguito da quello reale git tag. Di solito gestisco un one-liner come questo: $ git fetch -p && git tagsolo per essere sicuro che sto guardando l'ultimo e il più grande.
Demisx,

11

Elencare i tag disponibili in Git è semplice. Basta digitare git tag(con facoltativo -lo --list).

$ git tag
v5.5
v6.5

Puoi anche cercare tag che corrispondono a un modello particolare.

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

Ottenere l'ultimo tag sul repository git

Il comando trova il tag più recente raggiungibile da un commit. Se il tag punta al commit, viene mostrato solo il tag. In caso contrario, è sufficiente il nome del tag con il numero di commit aggiuntivi sopra l'oggetto con tag e il nome oggetto abbreviato del commit più recente.

git describe

Con --abbrevset su 0, il comando può essere utilizzato per trovare il più vicino tagnamesenza alcun suffisso:

git describe --abbrev=0

Altri esempi:

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

Come eliminare i tag git locali che non esistono sul telecomando

Per dirla semplice, se stai cercando di fare qualcosa del genere git fetch -p -t, non funzionerà a partire dalla versione git 1.9.4.

Tuttavia, esiste una soluzione semplice che funziona ancora nelle ultime versioni:

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

Il comando relativo a rev-list mi ha dato un elenco, ma si è concluso con un errore:v0.1.0-rc1 fatal: No tags can describe '5db7534...4a94'. Try --always, or create some tags.
not2qubit

10

Per visualizzare i dettagli sull'ultimo tag disponibile a volte utilizzo:

git show `git describe` --pretty=fuller

6

Se si desidera verificare il nome del tag localmente, è necessario andare al percorso in cui è stato creato il tag (percorso locale). Significa dove hai messo i tuoi oggetti. Quindi digitare il comando:

git show --name-only <tagname>

Mostrerà tutti gli oggetti con quel nome di tag. Sto lavorando a Teradata e oggetto significa vista, tabella ecc


4

Puoi elencare tutti i tag esistenti git tago filtrare l'elenco con git tag -l 'v1.1.*', dove *funge da jolly. Restituirà un elenco di tag contrassegnati con v1.1.

Noterai che quando chiami git tagnon riesci a vedere il contenuto delle tue annotazioni. Per visualizzare in anteprima è necessario aggiungerli -nal comando: git tag -n2.

$ git tag -l -n2

Versione 1.0 1.0

versione 1.1 della versione 1.1

Il comando elenca tutti i tag esistenti con un massimo di 3 righe del loro messaggio tag. Di default -nmostra solo la prima riga. Per ulteriori informazioni assicurati di controllare anche questo articolo relativo ai tag .


0

Per fare ciò una GUI ho appena scoperto che 'gitk' supporta le viste con nome. Le viste hanno diverse opzioni per la selezione di commit. Una pratica è una casella per selezionare "Tutti i tag". Sembra funzionare per me vedere i tag.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.