Crear rama desde otra rama en Git

Azhar Bashir Khan 6 febrero 2022
Crear rama desde otra rama en Git

Este tutorial enseña cómo crear una rama desde otra rama en Git.

Git, un sistema de control de versiones distribuido, es una herramienta adecuada para el control de versiones en un entorno de desarrollo colaborativo. En Git, creamos repositorios y, en los repositorios, creamos ramas para rastrear varios esfuerzos de desarrollo.

A menudo creamos una nueva rama desde la línea principal para corregir errores o desarrollar una nueva función. Después de completar la tarea, normalmente fusionamos esta rama con la rama principal para una versión.

Git nos brinda la capacidad de crear una rama a partir de otra rama existente. Además, podemos fusionar las ramas usando los comandos de Git.

Use el comando git checkout para crear una rama desde otra rama en Git

Git, un sistema de control de versiones distribuido, es una herramienta útil para realizar un seguimiento de los cambios en el repositorio del proyecto.

Tenemos varios miembros del equipo o equipos que utilizan el mismo repositorio de proyectos para trabajar en un entorno de desarrollo colaborativo. Varios miembros del equipo o equipos pueden crear diferentes ramas a partir de una rama existente para trabajar en esa rama.

Supongamos que tenemos una rama principal llamada main en nuestro repositorio de proyectos. Un equipo de corrección de errores crearía una nueva rama llamada bugfixes encima de esa rama. Otro equipo o miembro del equipo crearía una feature de rama para desarrollar una nueva función.

Una vez que el equipo o los miembros del equipo están satisfechos con los cambios realizados en la nueva rama, la nueva rama a menudo se fusiona nuevamente con la rama principal.

Supongamos que queremos crear una rama feature a partir de la rama principal main para desarrollar una función. Podemos usar el comando git checkout para eso.

La sintaxis para crear una nueva rama de la rama existente se encuentra a continuación.

git checkout -b <new-branch> <existing-branch>

En nuestro caso, ejecutaremos el comando de la siguiente manera.

$ git checkout -b feature main
Switched to a new branch 'feature'

Por lo tanto, hemos creado una nueva rama feature a partir de la rama existente main. La opción -b al comando git checkout hace que se cree la nueva rama. Además, hace que se desproteja la nueva rama.

Ahora desarrollaríamos la nueva característica y haríamos nuestros cambios en la nueva rama, llamada feature.

Después de completar el desarrollo de la característica y confirmar los cambios en la nueva rama feature, nos gustaría fusionar esta rama con la rama principal main.

Podemos usar el comando git merge para fusionar la rama feature con la rama principal main.

Primero, cambiaríamos a la rama de la línea principal main usando el comando git checkout.

$ git checkout main
Switched to branch 'main'

Usaremos el comando git merge para fusionar la rama feature con la rama main.

Ejecutaríamos el comando de la siguiente manera.

$ git merge --no-ff feature
Updating ea1b23a..05e9201
(Summary of changes)

La opción --no-ff del comando git merge siempre obliga a crear un nuevo objeto de commit, incluso si se realiza una fusión de avance rápido. Hace que se cree un commit de fusión en todos los casos, incluso cuando la fusión podría resolverse como un avance rápido.

Es útil, ya que cuando navegamos por el historial de Git, veríamos información sobre la existencia de la rama feature. También hace que se agrupen todos los commits de la rama feature.

Además, cuando queramos revertir la fusión de la rama feature a la rama main, será más fácil debido a la presencia del commit de fusión.

En el caso de la fusión de avance rápido, no se crea ningun commit de fusión. Solo se produce la actualización del puntero de rama para que coincida con la rama fusionada.

Finalmente, necesitamos enviar los cambios al repositorio remoto.

$ git push origin main
$ git push origin feature

Por lo tanto, hemos mostrado cómo crear una rama a partir de otra rama en Git.

Artículo relacionado - Git Branch