Git: enviar etiquetas a un repositorio remoto

    Si ha estado usando Git durante una cantidad significativa de tiempo, probablemente ya sepa cómo enviar sus confirmaciones desde una rama local a un repositorio remoto. Pero, como sabrá, Git no solo rastrea las confirmaciones, también hay otros objetos / referencias, como etiquetas.

    Estas etiquetas, que apuntan a un lugar específico en el historial de un repositorio, también se pueden enviar a repositorios remotos para que otros desarrolladores las utilicen o hagan referencia. Las etiquetas se pueden usar para muchas cosas, pero el caso de uso que más veo es usar etiquetas para marcar el número de versión del proyecto en un punto específico de la historia.

    Para enviarlos a un repositorio remoto, tiene algunas opciones:

    $ git push <repo-name> <tag-name>
    

    Este comando enviará una sola etiqueta al repositorio remoto y, por lo general, es el método preferido, sobre el que explicaré más a continuación.

    La otra forma sería enviar todas las etiquetas al repositorio remoto:

    $ git push --tags <repo-name>
    

    Esta forma no se recomienda porque es común que los desarrolladores tengan etiquetas viejas o «malas» en sus repositorios locales que no necesitan estar en el remoto, por lo que se recomienda solo empujar explícitamente una etiqueta usando el primer método, y no todas sus etiquetas a la vez.

    Pero, ¿qué sucede si necesita mover una etiqueta a una confirmación diferente? Esto suele suceder cuando etiqueta accidentalmente la confirmación incorrecta o si olvida fusionar los cambios en el maestro antes de etiquetar. En este caso, querrá hacer lo siguiente:

    • Eliminar la etiqueta del repositorio remoto
    • Mueva la etiqueta a la confirmación correcta
    • Empuje la etiqueta al repositorio remoto

    En términos de comandos de Git, así es como se vería esa secuencia:

    $ git push <repo-name> :refs/tags/<tag-name>
    $ git tag -fa <tag-name> <commit-hash>
    $ git push -f <repo-name> <tag-name>
    

    los -f bandera es una abreviatura de --force, que deshabilita ciertas comprobaciones y permite cambiar referencias, por ejemplo.

    También puede omitir el <commit-hash> argumento de la git tag comando si está etiquetando la confirmación más reciente. Personalmente, prefiero ser explícito con mis comandos de etiqueta para asegurarme de que siempre sé exactamente lo que estoy etiquetando, pero debes hacer lo que funcione mejor para ti.

     

    Rate this post
    Etiquetas:

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *