213 votos

¿Cómo se presiona una etiqueta Git a una rama usando una refspec?

Quiero a la fuerza de empuje, por ejemplo, mi tag 1.0.0 a mi remota master rama.

Ahora estoy haciendo lo siguiente:

git push production +1.0.0:master

Quiero a la fuerza, el empuje, porque todo lo que me interesa es que el código dentro de la 1.0.0 etiqueta es empujado a la master rama del repositorio remoto.

¿Qué estoy haciendo mal?

Actualización #1

Cuando me SSH en mi servidor donde mi Git repository es y ejecutar git branch -l, no veo la master rama incluidos.

Actualización #2

Después de ejecutar git tag -l desde el interior de la remota repositorio de Git, veo que master está en la lista, lo que significa que cuando me encontré con la siguiente:

git push production 1.0.0:master

Lo que realmente empujó la etiqueta y crea una etiqueta llamada master , en lugar de una nueva sucursal.

Quiero básicamente empujar el contenido de la etiqueta 1.0.0 en el master rama del repositorio Git remoto.

469voto

bstpierre Puntos 12616
git push --tags production

61voto

neoneye Puntos 11545

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 git@github.com:neoneye/triangle_draw.git
 * [new tag]         v1.1 -> v1.1
 

56voto

Chris Johnsen Puntos 50064

Es probablemente fracasar, porque 1.0.0 es una anotada de la etiqueta. Tal vez usted vio el mensaje de error siguiente:

error: Intentar escribir no cometer objeto de la sucursal de refs/heads/master

Anotado etiquetas tienen su propio tipo de objeto que señala el etiquetado objeto de commit. Las ramas no pueden útilmente punto para etiquetar los objetos, sólo se comprometan objetos. Usted tiene que "pelar" el anotado etiqueta de nuevo a objeto de commit y push 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 un poco diferente si la etiqueta de los puntos del objeto a algo distinto de un commit (o una etiqueta de objeto que señala (una etiqueta de objeto que apunta a un ...) un commit).

git push production +1.0.0^{}:master

Estas etiqueta descamación de la sintaxis se describe en git-rev-parse(1) bajo la Especificación de las Revisiones.

9voto

koppor Puntos 2066

Para insertar una única etiqueta: git push <reponame> <tagname>

Por ejemplo, git push production 1.0.0. Las etiquetas no están vinculados a las ramas, que están vinculados a los comete.

Cuando usted quiere tener el contenido de la etiqueta de la rama principal, hacer que localmente, en su equipo. Quiero suponer que usted ha seguido desarrollando en el local de la rama principal. A continuación, sólo un git push origin master debería ser suficiente.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X