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


Respuestas:


877

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

git checkout -b newbranch v1.0

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

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.


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

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

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


2
No utilice capturas de pantalla si también copiar y pegar texto sería suficiente.
peterh - Restablece a Monica
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.