Come visualizzare i tag remoti?


136

In Atlassian SourceTree, come sapere quali tag sono solo locali e quali sono anche in remoto?

Quando si crea un tag viene visualizzata l'opzione "Push tag to: ...", ma come sapere se un tag è stato inviato o meno dopo che è stato creato? Riesco a vedere tutti i miei tag localmente, ma devo essere sicuro che siano presenti in remoto in modo che altri sviluppatori possano estrarli.


Ho aggiornato la mia risposta di seguito per indirizzare specificamente Atlassian SourceTree.
VonC,

Risposte:


121

Anche senza clonare o recuperare, è possibile controllare l'elenco di tag nel repository upstream con git ls-remote:

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

(come illustrato in " Quando si elenca git-ls-remote perché c'è" ^{}"dopo il nome del tag? ")

xbmono illustra nei commenti che sono necessarie le virgolette:

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

Nota che puoi sempre inviare i tuoi commit e tag in un solo comando con (git 1.8.3+, aprile 2013):

git push --follow-tags

Vedi Push git commit e tag contemporaneamente .


Per quanto riguarda in particolare Atlassian SourceTree:

Da questo thread , SourceTree mostra SOLO tag locali.

Esiste un RFE (Request for Enhancement) registrato SRCTREEWIN-4015da dicembre 2015.

Una soluzione semplice:

vedi un elenco di soli tag non compressi?

git push --tags

oppure seleziona la Push all tagscasella "" nella finestra di dialogo "Push", tutti i tag verranno inviati al tuo telecomando.

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

In questo modo, sarai "sicuro che siano presenti in remoto in modo che altri sviluppatori possano estrarli".


3
È fantastico ma mi chiedevo come conoscerlo con Atlassian SourceTree, non con la riga di comando git.
cprcrack,


Ho provato refs/tags/MyTag^{}a ottenere l'ID commit collegato a quel tag ma questo comando git ls-remotenon restituisce nulla. Esiste un modo per ottenere l'ID commit di un tag senza referenze?
xbmono

@xbmono Questo dovrebbe essere stackoverflow.com/a/12939216/6309
VonC

1
@xbmono Buona cattura! Ho incluso il tuo commento nella risposta per una maggiore visibilità.
VonC

145

È possibile elencare i tag nel repository remoto con ls-remotee quindi verificare se è presente. Supponendo che il nome di riferimento remoto sia originil seguente.

git ls-remote --tags origin

E puoi elencare i tag locali con tag.

git tag

È possibile confrontare i risultati manualmente o nello script.


1
@VonC Sei più veloce. :) Sto cercando di risolvere altre gitdomande per familiarizzare git. :)
Landys,

Nessun problema: è così che ho imparato Git dalla fine del 2008.
VonC,

1
È fantastico ma mi chiedevo come conoscerlo con Atlassian SourceTree, non con la riga di comando git.
cprcrack,

2
@cprcrack Quindi ti stavi chiedendo se Atlassian SourceTree fornisce la funzione per visualizzare i tag remoti nella GUI, giusto? Ho un aspetto approssimativo e sembra di no. Ma perché non fare semplicemente clic sul menu Actions -> Open in Terminal, quindi digitare git ls-remote --tags origined eseguire?
Landys,

2
@Landys Grazie, è utile. Quando elenco i tag remoti, vedo doppie voci. Hanno ID diff ma lo stesso nome di tag tranne con postfix ^ {}. Esempio: release-v1.0, release-v1.0 ^ {}, release-v1.1, release-v1.1 ^ {}, ecc. Sai quali sono quelle voci extra? Sebbene le voci extra abbiano un ID diff, git log <ID> fornisce comunque lo stesso output.
shiouming,
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.