¿Cómo crear una nueva rama desde una etiqueta?

528

Me gustaría crear una nueva rama maestra a partir de una etiqueta existente. Digamos que tengo una etiqueta v1.0. ¿Cómo crear una nueva rama a partir de esta etiqueta?

Andrés
fuente
posible duplicado de la etiqueta Checkout GIT
Greg Bacon

Respuestas:

877

Wow, eso fue más fácil de lo que pensaba:

git checkout -b newbranch v1.0
Andrés
fuente
53
Correcto. Tenga en cuenta que también podría haber establecido la rama maestra de nuevo al punto de la etiqueta congit reset --hard v1.0
wadesworld
3
Si esto no funciona debido a que "<tag> no es una confirmación válida" o un error similar (a menudo cuando se trabaja en un repositorio compartido), consulte stackoverflow.com/questions/35979642/…
SalmonKiller
66
La sugerencia de @wadesworld podría funcionar, pero si alguien lee esto y no está 100% seguro de lo que significa restablecer la rama maestra, no lo haga .
Nathan Long
Esta es una mejor respuesta que encontré aquí - stackoverflow.com/a/35979751/3145960
Reaz Murshed
101

Si simplemente desea crear una nueva rama sin cambiarla inmediatamente, puede hacer lo siguiente:

git branch newbranch v1.0
usuario1069067
fuente
66
Creo que esta debería ser la respuesta aceptada, ya que hace exactamente lo que se requiere. La respuesta aceptada hace algo más que no se indica en la pregunta.
Javier Vázquez
40

Utilicé los siguientes pasos para crear una nueva rama de hotfix desde una etiqueta.

Sintaxis

git checkout -b <New Branch Name> <TAG Name>

Pasos para hacerlo.

  1. git checkout -b NewBranchName v1.0
  2. Realizar cambios en las versiones de lanzamiento / pom
  3. Cambios de escenario
  4. git commit -m "Actualizar versiones de pom para la rama Hotfix"
  5. Finalmente empuje su rama recién creada al repositorio remoto.
git push -u origin NewBranchName

Espero que esto ayude.

Tarun Kumar
fuente
17

He resuelto el problema como se muestra a continuación 1. Obtenga la etiqueta de su rama 2. Escriba el siguiente comando

Example: git branch <Hotfix branch> <TAG>
    git branch hotfix_4.4.3 v4.4.3
    git checkout hotfix_4.4.3

o puedes hacerlo con otro comando

git checkout -b <Hotfix branch> <TAG>
-b stands for creating new branch to local 

una vez que esté listo con su rama de revisión, es hora de mover esa rama a github, puede hacerlo escribiendo el siguiente comando

git push --set-upstream origin hotfix_4.4.3
Kirtikumar A.
fuente
5

La situación se vuelve un poco problemática si queremos crear una rama a partir de una etiqueta con el mismo nombre .

En esto, y en escenarios similares, lo importante es saber: las ramas y las etiquetas son en realidad archivos de texto de una sola línea en el .git/refsdirectorio, y podemos hacer referencia a ellos explícitamente usando sus parches a continuación .git. Las ramas se llaman aquí "cabezas", para hacer nuestra vida más simple.

Por lo tanto, refs/heads/masteres el nombre real y explícito de la masterrama. Y refs/tags/cicaes el nombre exacto de la etiqueta nombrada cica.

El comando correcto para crear una rama llamada cicade la etiqueta nombrada cicaes:

git branch cica refs/tags/cica
peterh - Restablece a Monica
fuente
4

Mi lista de sucursales (solo maestro ahora)

lista de sucursales

Mi lista de etiquetas (tiene tres etiquetas)

lista de etiquetas

Cambie a la nueva función / códec de sucursal desde la etiqueta opus_codec

git checkout -b feature/codec opus_codec

cambiar a rama

eranga
fuente
2
No utilice capturas de pantalla si también copiar y pegar texto sería suficiente.
peterh - Restablece a Monica