Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

05 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?

RTA:
El hash no sufre modificación, algo propio de la seguridad dada por el hash

$ git switch main
Already on 'main'
Your branch is ahead of 'origin/main' by 1 commit.
(use "git push" to publish your local commits)

Ernesto Viloria@DESKTOP-6DBRMV9 MINGW64 ~/OneDrive/Documentos/git-y-github/sistema-de-registro (main)
$ git merge desarrollo
Already up to date.

Ernesto Viloria@DESKTOP-6DBRMV9 MINGW64 ~/OneDrive/Documentos/git-y-github/sistema-de-registro (main)
$ git log --oneline
be35d4d (HEAD -> main) Actualiza el contacto
8c311d3 (origin/main, origin/desarrollo, origin/HEAD, desarrollo) Actualiza el index
6c8034d Actualiza el index
86813fc Agrega archivo de contacto
3d0057e Actualiza el README.md
54a7077 Creacion index.html
50c11c0 Update del README.md
7f5c791 Crea el app.js
986d370 Create README.md

Ernesto Viloria@DESKTOP-6DBRMV9 MINGW64 ~/OneDrive/Documentos/git-y-github/sistema-de-registro (main)
$ git push origin main
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 342 bytes | 342.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/ernestorafaelviloriagarcia/sistema-de-registro.git
8c311d3..be35d4d main -> main

Ernesto Viloria@DESKTOP-6DBRMV9 MINGW64 ~/OneDrive/Documentos/git-y-github/sistema-de-registro (main)
$ git log --online
fatal: unrecognized argument: --online

Ernesto Viloria@DESKTOP-6DBRMV9 MINGW64 ~/OneDrive/Documentos/git-y-github/sistema-de-registro (main)
$ git log --oneline
be35d4d (HEAD -> main, origin/main, origin/HEAD) Actualiza el contacto
8c311d3 (origin/desarrollo, desarrollo) Actualiza el index
6c8034d Actualiza el index
86813fc Agrega archivo de contacto
3d0057e Actualiza el README.md
54a7077 Creacion index.html
50c11c0 Update del README.md
7f5c791 Crea el app.js
986d370 Create README.md

Ernesto Viloria@DESKTOP-6DBRMV9 MINGW64 ~/OneDrive/Documentos/git-y-github/sistema-de-registro (main)
$

1 respuesta

Hola Ernesto, espero que estés bien

¡Espero que estés bien! En relación a tu pregunta sobre si el hash cambia después de una fusión, es importante entender cómo funcionan los hashes en Git. Cada commit en Git tiene un hash único que actúa como su identificador. Este hash es generado en base al contenido del commit, incluyendo cambios, autor, fecha, etc.

Cuando realizas un merge, Git crea un nuevo commit de fusión (merge commit) que tiene su propio hash. Este nuevo commit de fusión no altera los hashes de los commits anteriores; simplemente agrega un nuevo commit a la historia que representa la fusión de las ramas. Por lo tanto, los hashes de los commits anteriores permanecen sin cambios.

En tu caso, después de realizar el merge, puedes ver que el commit más reciente tiene un nuevo hash be35d4d, pero los commits anteriores, como 8c311d3, mantienen sus hashes originales. Esto es completamente normal y esperado en Git.

Espero que esta explicación te ayude a entender mejor cómo funcionan los hashes en Git y cómo se comportan durante un merge. ¡Bons estudios!