¿Cómo ver las etiquetas remotas?


136

En Atlassian SourceTree, ¿cómo saber qué etiquetas son solo locales y cuáles también son remotas?

Al crear una etiqueta, aparece la opción "Insertar etiqueta para: ...", pero ¿cómo saber si una etiqueta ha sido empujada o no después de crearla? Puedo ver todas mis etiquetas localmente, pero necesito asegurarme de que estén presentes en forma remota para que otros desarrolladores puedan extraerlas.


He actualizado mi respuesta a continuación para abordar específicamente Atlassian SourceTree.
VonC

Respuestas:


121

Incluso sin clonar o buscar, puede consultar la lista de etiquetas en el repositorio ascendente con git ls-remote:

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

(como se ilustra en " Al enumerar git-ls-remote ¿por qué hay" ^{}"después del nombre de la etiqueta? ")

xbmono ilustra en los comentarios que se necesitan citas:

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

Tenga en cuenta que siempre puede insertar sus confirmaciones y etiquetas en un comando con (git 1.8.3+, abril de 2013):

git push --follow-tags

Ver Push git commits & tags simultáneamente .


Con respecto a Atlassian SourceTree específicamente:

Tenga en cuenta que, a partir de este hilo , SourceTree SOLO muestra etiquetas locales.

Hay una RFE (solicitud de mejora) iniciada SRCTREEWIN-4015desde diciembre de 2015.

Una solución simple:

ver una lista de solo etiquetas sin empujar?

git push --tags

o marque la Push all tagscasilla " " en el cuadro de diálogo "Empujar", todas las etiquetas se enviarán a su control remoto.

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

De esa manera, estará "seguro de que están presentes en forma remota para que otros desarrolladores puedan extraerlos".


3
Eso es genial, pero estaba preguntando cómo saberlo con Atlassian SourceTree, no con la línea de comando git.
cprcrack


Intenté refs/tags/MyTag^{}vincular la identificación de confirmación con esa etiqueta, pero este comando git ls-remoteno devuelve nada. ¿Hay alguna forma de obtener el id de confirmación de una etiqueta desreferenciada?
xbmono

@xbmono Esto debería ser stackoverflow.com/a/12939216/6309
VonC

1
@xbmono Buena captura! He incluido tu comentario en la respuesta para mayor visibilidad.
VonC

145

Puede enumerar las etiquetas en el repositorio remoto con ls-remote, y luego verificar si está allí. Supongamos que el nombre de referencia remota se encuentra origina continuación.

git ls-remote --tags origin

Y puede enumerar etiquetas locales con tag.

git tag

Puede comparar los resultados manualmente o en script.


1
@VonC Eres más rápido. :) Estoy tratando de resolver más gitpreguntas para familiarizarme git. :)
Landys

No hay problema: así es como he estado aprendiendo Git desde fines de 2008.
VonC

1
Eso es genial, pero estaba preguntando cómo saberlo con Atlassian SourceTree, no con la línea de comando git.
cprcrack

2
@cprcrack Entonces, se preguntaba si Atlassian SourceTree proporciona la función para ver las etiquetas remotas en la GUI, ¿verdad? Tengo una mirada áspera, y parece que no. Pero, ¿por qué no simplemente hacer clic en el menú Actions -> Open in Terminaly luego escribir git ls-remote --tags originy ejecutar?
Landys

2
@Landys Gracias, eso es útil. Al enumerar etiquetas remotas, veo entradas dobles. Tienen ID de diferencia pero el mismo nombre de etiqueta excepto con postfix ^ {}. Ejemplo: release-v1.0, release-v1.0 ^ {}, release-v1.1, release-v1.1 ^ {}, etc. ¿Sabe cuáles son esas entradas adicionales? Aunque las entradas adicionales tienen ID de diferencia, sin embargo, git log <ID> proporciona el mismo resultado.
Shiouming
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.