Uniendo ramas

De Wiki de EGC
Saltar a: navegación, buscar

Para tratar la unión de ramas, vamos a suponer el siguiente escenario en el que se crea una rama desarrollo a partir de la rama master.

  -- master --------------------...
            \                   
             \                  
              --- desarrollo ---....

Se trata del escenario clásico donde el software en productivo (ya desplegando en el servidor, estable y que ha pasado unos controles de calidad) se encuentra en la rama master. A esta rama sólo van bugfixes. En la rama desarrollo se incluyen las nuevas funcionalidades previstas para la siguiente versión.

Esto en git se hace con:

% git branch desarrollo

Si llegado el momento, se quiere fusionar la rama desarrollo a master de nuevo:

  -- master ------------------------------
            \                      /
             \                    /
              --- desarrollo ----'

Desde la rama master, se hace:

% git merge desarrollo

Lo que une la rama desarrollo a master.

Ojo: Si se modificado la misma línea de código en ambas ramas, es probable que git reporte un conflicto a solucionar.

Resolución de conflictos

Al unir dos ramas con cambios sobre las mismas líneas de un cierto fichero, git nos notifica un conflicto. Ante un conflicto git nos solicita nuestra interverción, por tanto, se trata de una operación manual.

Ante un conflicto, git nos pregunta con qué nos debemos quedar. Como norma general, la resolución de conflicto consiste en fusionar los cambios de ambas ramas de manera manual, es decir, que no es cuestión de quedarse con un cambio u otro, sino con una mezcla de los dos.