Curso de git y github desde cero

La fusión de ramas Git

Capítulo 7: git merge - Fusión de ramas

En este capítulo aprenderás lo que es la fusión de ramas en Git y como puedes utilizarla.

¿Qué es la fusión de ramas Git?

La fusión de ramas o git merge es la unión de dos ramas. Unión que va a dar como resultado la suma de archivos añadidos y la resta de archivos eliminados. Será una mezcla de las dos ramas. Ahora entenderás esto mejor con unos ejemplos prácticos.

Como eliminar una rama de Git

Seguimos con el mismo proyecto de todo el curso. Vamos a eliminar la rama version_2, la cual, ya no la necesitamos más. Esto borrará toda su línea temporal, archivos en esa "dimensión", el área de ensayo (staging) y los commits, así que ten claro lo que estás haciendo cuando utilices este comando.

git branch -D version_2
Eliminar una rama de Git

Una vez eliminada, vamos a crear una nueva que implementará nuevas mejoras para la rama master.

De paso, veamos como crear una rama y acceder a la vez a ella. El comando git checkout viste que nos sirve para acceder a una rama. Si lo utilizas con una rama inexistente, este la creará y te situará sobre ella. Es el mismo comando, solo que le tienes que añadir la opción -b

git checkout -b rama_imagenes
Git checkout opción -b

Esta nueva rama, la crearé a modo de prueba para ver si me convence el resultado. En ella, voy a añadir unas imágenes para el index.html.

Añado una carpeta con varias imágenes , las enlazo en la página html y elimino la folder_open carpeta js con el archivo que lleva dentro. La estructura de archivos del proyecto quedará así:

proyecto_1/
|-- css/
|   |-- test.css
|-- img/
|   |-- camping.jpg
|   |-- city.jpg
|   |-- metro.jpg
|-- index.html

Página index.html

Esto es lo que he modificado del index.html . La línea que enlazaba con la hoja de JavaScript está retirada del <body>.

<!doctype html>
<html lang="es">
<head>
	<meta charset="utf-8">
	<title>Página principal del proyecto</title>
	<meta name="description" content="Página principal para el proyecto de Git">
	<meta name="author" content="Programación Fácil">
	<link href="css/test.css" rel="stylesheet" />

</head>

<body>

	<h1>Mis fotos de viaje</h1>

	<img src="img/camping.jpg" alt="Camping en la montaña"/>
	<img src="img/city.jpg" alt="La gran ciudad"/>
	<img src="img/metro.jpg" alt="Foto del metro"/>

</body>
<html>
Archivo de ejemplo del proyecto

Lo sé, el resultado es una , pero así, no perdemos el tiempo editando cosas, solo lo justo para que entiendas los conceptos, recuerda que no estamos en un curso de edición web.

Como enviar modificaciones directamente a commit sin pasar por el área de staging

Puesto que quiero que mis capítulos sean productivos y aprendas varias cosas a la vez, aprovecho para enseñarte como puedes hacer el commit de modificaciones sin pasar por el área de staging.

Los archivos nuevos sin seguimiento ("untracked") no van a incluirse en el commit de esta forma, los tendrás que pasar primero por el área de staging por lo menos la primera vez.

En ocasiones, con pocas modificaciones, puede parecer una tontería enviarlas al área de staging. Cuando tengas la seguridad de que todo está listo para ser confirmado (commit) puedes hacerlo directamente añadiendo la opción -a.

 git commit -a -m "Modificadas varias páginas del proyecto"

Como fusionar dos ramas en Git con merge

Una vez consideramos terminado el propósito de la nueva rama y creemos que todo este trabajo puede fusionarse con la rama principal (master), podemos fusionarla gracias al comando git merge.

Vayamos primero a la rama master:

git checkout master

Después introduce el comando git merge para fusionar con rama_imagenes.

git merge rama_imagenes

Nos indica con el símbolo + las líneas que han sido insertadas y con el símbolo - las que se han eliminado.
Por ejemplo, en el index.html se han modificado un total de 9 líneas. Ocho añadidas (+) y una eliminada (-).

Los archivos añadidos (las imágenes), tienen el peso en bytes (0) antes de existir y el peso actual en color verde.

Git merge

Ahora que ya hemos fusionado la rama_imagenes con la principal (master), podemos perfectamente eliminarla si no tenemos que realizar nuevas modificaciones sobre dicha rama. El comando es el mismo que te he enseñado ya en este mismo capítulo, con una pequeña variación. En este caso, puedes utilizar la opción -d en minúsculas para eliminar la rama. Esto solo funcionará si las ramas han sido fusionadas. Si quieres eliminar una rama sin fusión, lo tienes que forzar como te he enseñado al principio, con la -D.

git branch -d rama_imagenes
Deleted branch rama_imagenes (was e68a326).

Comentarios

Si te quedan dudas sobre el temario, sobre html, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.

Programación Fácil YouTube

Suscríbete

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.