Pero ¿Cómo unimos lo que hicimos en otras ramas a la rama principal? Hacer git merge en un repositorio es integrar o fusionar las líneas de código de commits de una rama con otra. Éste es uno de los comandos básicos que usamos en nuestro día a día con git. Vamos a profundizar un poco en las opciones que tenemos disponibles con él. Esto se hace con: git branch -d rama-a-eliminar, es decir, para nuestro caso: git branch -d feature. Ahora, después que el merge se realiza con éxito en nuestro repositorio puede darse dos posibles casos: un fast-forward merge merge de avance rápido o un 3-way merge merge a tres bandas. Un fast-forward merge es cuando al momento de hacer merge con la rama master no se ha añadido ningún commit luego de crear la rama feature, es decir que el HEAD de master es el antepasado de la rama feature. Por tanto, en este caso no se genera un nuevo commit para agregar los commits de la rama de feature, en vez de ello, el HEAD de master se actualiza al HEAD de la rama feature, sin crear un commit de merge adicional, de allí su nombre, fast-forward o avance rápido, como se muestra en la imagen: Pero si realmente queremos que se genere un commit al hacer merge para documentar o dejar constancia que se hizo merge de otra rama en master debemos usar la opción --no-ff, es decir git merge -- no - ff feature Quedando la rama master de esta manera: Por otro lado, si la rama master ha divergido después de haber creado la rama feature ya no es posible un fast-forward merge, debido a que el commit de la rama donde actualmente se está master no es un antepasado directo de la rama a fusionar feature por tanto, git realiza un merge a tres bandas, es decir, que genera un commit para fusionar las dos ramas, tomando en cuenta el HEAD de cada una de ellas y el antepasado común de las dos: Resolviendo conflictos Algunas veces la unión de dos ramas no resulta tan bien, sino que ocurre un conflicto, esto cuando los commits de la rama a fusionar y la rama actual modifican la misma parte en un archivo en particular y git no puede decidir cuál versión elegir, y te avisa que tu debes resolverlo. Por ejemplo: Supongamos que un directorio tenemos un archivo index. Para ello arreglamos el archivo con los cambios elegidos, guardamos, agregamos y hacemos commit de los cambios git merge -- squash rama - a - fusionar Merge es una de las alternativas que nos da git para unir las ramas de nuestro repositorio pero no es la única; en la próxima entrega conoceremos a rebase y su diferencia con merge.