Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
6
respuestas

Desafio: Hash del Merge

Durante la clase, la instructora Ellen usó el comando git log --oneline para verificar el hash de la modificación creada dentro de la rama de desarrollo en el archivo contacto.html

¿Será que después de la fusión hubo un cambio en este número?

El hash del commit original no cambia, pero después de un merge aparece un commit adicional con un hash distinto que refleja la integración.

6 respuestas

¡Hola, Shirley, espero que estés bien!

Entiendo tu duda sobre cómo los hashes de los commits cambian después de un merge. En Git, cada commit tiene un hash único que lo identifica, y este hash es calculado con base en el contenido del commit, el autor, la fecha y el hash del commit anterior.

Cuando realizas un merge, Git crea un nuevo commit de merge que tiene un hash diferente. Este commit de merge no cambia el hash de los commits anteriores; simplemente añade un nuevo commit a la historia del repositorio que refleja la combinación de las ramas.

Por ejemplo, si tienes una rama principal (main) y una rama de desarrollo (development), y realizas cambios en la rama de desarrollo, esos cambios tendrán sus propios hashes. Al fusionar la rama de desarrollo en la rama principal, Git creará un nuevo commit de merge en la rama principal con un nuevo hash. Este nuevo commit de merge contiene la referencia a los dos padres: el último commit de la rama principal y el último commit de la rama de desarrollo.

Entonces, el hash del commit original en la rama de desarrollo permanece igual, pero el merge crea un nuevo commit con su propio hash.

Espero haber aclarado tu duda. ¡Espero que te haya ayudado y buenos estudios!

Muchas gracias Brenda! Lo tengo mas claro con tu explicación. Saludos

No entendí :(

Hola Elías, esto me ayudo a entender mejor el merge y porque tiene un nuevo hash:

Piensa que cada commit en Git es como una página de un diario donde escribes lo que hiciste.

Cada página tiene un código secreto único (el hash) para que nunca se confunda con otra.

  • Cuando Ellen hizo su cambio en contacto.html y lo guardó, Git le dio a esa página un código secreto.
  • Ese código no va a cambiar nunca, porque lo que escribiste en esa página ya quedó para siempre.

Ahora, cuando haces un merge (fusión):

  • Es como si juntaras dos diarios diferentes (por ejemplo, el diario de "desarrollo" y el diario de "principal") en una nueva página que dice: "Aquí junté todo".
  • Esa nueva página también tiene su propio código secreto nuevo porque es un commit diferente, que no existía antes.
  • Pero las páginas viejas (incluyendo el commit original de contacto.html) siguen con el mismo código de siempre.

muchas gracias por la explicación!

Hola, noté que los números del codigo hash no cambian. Luego encontré que los codigos hash son una cadena y que estos son como 40 caracteres, y lo q vimos son solo abreviaturas. Supongo q hará eso pa manejar sus versiones.