2009-10-27 11 views
9

Abbiamo un repository con più tag. Ogni tag rappresenta una versione del software. Stiamo spingendo il repository su un server remoto.I tag Git spariscono quando si fa un push e poi si clona?

Quando eseguiamo un nuovo clone dal server remoto, i tag non ci sono più. Come assicurate che altri sviluppatori o clienti possano controllare versioni specifiche del software dal server remoto?

risposta

12

git push --tags o git push remotetag-name

+0

Mi sembra strano che i tag debbano essere tenuti separati, mi chiedo perché! – corydoras

+2

In realtà, i tag non vengono tenuti separati. La semantica predefinita di 'git push' è quella di spingere i riferimenti (rami e tag) sul tuo computer locale che hanno refs corrispondenti sul telecomando. Poiché un determinato tag non esiste ancora sul telecomando, non verrebbe inserito (e poiché i tag sono intesi come immutabili, non avrebbe comunque senso aggiornare i tag in ogni caso). Quindi, devi spingere esplicitamente i tag quando vuoi che appaiano sul telecomando. –

+2

Potrebbe essere necessario, penso, 'git push tag ', vale a dire che il parametro di repository deve essere specificato esplicitamente (poiché l'interpretazione dipende dalla posizione). –

9

soluzione alternativa a quella given by Brian Campbell sarebbe quello di configurare il telecomando per spingere tutti gli arbitri, o spingere tutti i rami e tag:

[remote "repository"] 
     url = [email protected]:user/repo.git 
     push = +refs/heads/*:refs/heads/* 
     push = +refs/tags/*:refs/tags/* 
0

Si noti che, dal momento che git 1.8.3 (April 22d, 2013), un:

git push --follow-tags 

invierebbe qualsiasi nuovo commit nonché tutti i tag annotati a cui fa riferimento il comando push suo.

Problemi correlati