tipos tag repositorio remove qué que existen etiquetas git git-push git-tag

tag - ¿Cómo se empuja una etiqueta Git a una rama usando una refspec?



qué tipos de etiquetas existen en git (4)

Quiero forzar el empuje, por ejemplo, mi etiqueta 1.0.0 a mi rama master remota.

Ahora estoy haciendo lo siguiente:

git push production +1.0.0:master

Quiero forzar el empuje , porque lo único que me importa es que el código dentro de la etiqueta 1.0.0 se inserte en la rama master en el repositorio remoto.

¿Qué estoy haciendo mal?

Actualización # 1

Cuando hago SSH en mi servidor donde está mi repositorio Git y ejecuto git branch -l , tampoco veo la rama master lista.

Actualización # 2

Después de ejecutar git tag -l desde dentro del repositorio remoto de Git, veo que el master está en la lista, lo que significa que cuando ejecuté lo siguiente:

git push production 1.0.0:master

En realidad empujó la etiqueta y creó una etiqueta llamada master lugar de una nueva rama .

Básicamente quiero insertar el contenido de la etiqueta 1.0.0 en la rama master del repositorio Git remoto.


Creo la etiqueta como esta y luego la empujo a GitHub:

git tag -a v1.1 -m "Version 1.1 is waiting for review" git push --tags Counting objects: 1, done. Writing objects: 100% (1/1), 180 bytes, done. Total 1 (delta 0), reused 0 (delta 0) To [email protected]:neoneye/triangle_draw.git * [new tag] v1.1 -> v1.1


Para empujar una sola etiqueta: git push <reponame> <tagname>

Por ejemplo, git push production 1.0.0 . Las etiquetas no están vinculadas a las ramas, están vinculadas a las confirmaciones.

Cuando desee tener el contenido de la etiqueta en la rama maestra, hágalo localmente en su máquina. Supongo que continuó desarrollando en su rama maestra local. Entonces solo un git push origin master debería ser suficiente.


Probablemente está fallando porque 1.0.0 es una etiqueta anotada. Quizás viste el siguiente mensaje de error:

error: al intentar escribir un objeto no confirmado en la rama refs / heads / master

Las etiquetas anotadas tienen su propio tipo de objeto distinto que apunta al objeto de confirmación etiquetado. Las ramas no pueden apuntar de manera útil a los objetos de etiquetas, solo los objetos de confirmación. Necesita "pelar" la etiqueta anotada para cometer el objeto y empujar eso en su lugar.

git push production +1.0.0^{commit}:master git push production +1.0.0~0:master # shorthand

Hay otra sintaxis que también funcionaría en este caso, pero significa algo ligeramente diferente si el objeto de etiqueta apunta a algo distinto de un compromiso (o un objeto de etiqueta que apunta a (un objeto de etiqueta que apunta a un…) un compromiso) .

git push production +1.0.0^{}:master

Estas sintaxis de pelado de etiquetas se describen en git-rev-parse(1) en Especificar revisiones .


git push --tags production