2009-06-30 17 views

risposta

499
git tag 

dovrebbe essere sufficiente. Vedere git tag man page


Hai anche:

git tag -l <pattern> 

Elenco tag con i nomi che corrispondono al pattern specificato (o tutti se nessun modello è dato).
Digitando "tag git" senza argomenti, elenca anche tutti i tag.


Più recentemente ("How to sort git tags?", per Git 2.0+)

git tag --sort=<type> 

Ordina in un ordine specifico.

tipo supportato è:

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

Prepend "-" per invertire l'ordine.


che elenca entrambi:

  • annotated tags: oggetti pieni memorizzati nel database Git. Sono checksum; contenere il nome del tagger, l'e-mail e la data; avere un messaggio di tagging; e può essere firmato e verificato con GNU Privacy Guard (GPG).
  • lightweight tags: semplice puntatore ad un esistente commettere

Nota: le git ready article on tagging disapprova tag leggero.

Senza argomenti, il tag git crea un tag "leggero" che è fondamentalmente un ramo che non si sposta mai.
I tag leggeri sono comunque utili, forse per contrassegnare una versione nota (o cattiva) nota o un gruppo di commit che potrebbe essere necessario utilizzare in futuro.
Tuttavia, probabilmente non si desidera utilizzare 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 corretto (non firmato annotato) (opzione '-a'), e non un peso 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 "Git Tag list, display commit sha1 hashes").
Annotare lo -d per 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> sarebbe elencare il tag e associato commesso.

+5

E 'probabilmente la pena di aggiungere che -m o -F -a comporta (se non di -a, -s o -u vengono forniti esplicitamente Non è possibile avere un messaggio di tag senza creare un oggetto tag 'appropriato' –

+1

@Charles: buon punto Ho aggiornato la mia risposta di conseguenza – VonC

+0

Forse '--name -only' può anche essere menzionato qui, http://stackoverflow.com/a/43870965/54964 –

136

Per elencare i tag preferisco:

git tag -n 

La bandiera -n visualizza la prima riga del messaggio di annotazione con il tag, o il primo commit riga di segnalazione se il tag non è annotato.

È anche possibile eseguire git tag -n5 per visualizzare le prime 5 righe dell'annotazione.

5

Provare a fare git tag dovrebbe essere sufficiente se non provare a fare git fetch quindi git tag.

+0

Cosa intendi? – toto

+3

Penso che quello che intende sia questo: L'esecuzione del comando 'git tag' dovrebbe essere sufficiente se vuoi solo vedere 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 gli ultimi ref/test dal primo remoto 'git fetch', seguito dall'attuale' git tag'. Di solito eseguo un one-liner come questo: '$ git fetch -p && git tag 'per essere sicuro che sto guardando l'ultimo e il più grande. – demisx

32

anche git show-ref è piuttosto utile, in modo che è possibile associare direttamente tag con corrispondente impegna:

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

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

Essendo abituato ai "tag hg" di Mercurial, mi piace che 'git show-ref' mi dia il tag E la revisione. – Justin

+1

Ciò è stato estremamente utile per provare a estrarre informazioni sui tag a livello di codice. –

4

Per visualizzare i dettagli sulle ultime tag disponibili A volte uso:

git show `git describe` --pretty=fuller 
1

Se si vuole controllare si etichetta nome a livello locale, si deve andare al percorso in cui si dispone crea tag ted (percorso locale). Mezzi dove avete messo i vostri oggetti. comandi digitare Poi:

git show --name-only <tagname> 

Mostrerà tutti gli oggetti sotto quel nome tag. Sto lavorando in Teradata e oggetto significa vista, tavolo ecc

0

Ed ecco come trovare i tag remoti:

git ls-remote --tags origin

Problemi correlati