Probar commits sin modificar (sin amend)
En este paso, crearemos un nuevo commit sin usar la bandera --amend
y observaremos cómo aparece en tanto git log
como en git reflog
. Esto ayudará a consolidar tu comprensión de cómo estos comandos registran el historial de manera diferente.
Primero, agreguemos más contenido a nuestro archivo message.txt
. Añadiremos una nueva línea:
echo "Hello again, Future Me!" >> message.txt
El operador >>
agrega el texto al archivo existente, en lugar de sobrescribirlo.
Ahora, comprobemos el estado para ver los cambios:
git status
Deberías ver una salida que indique que message.txt
ha sido modificado:
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: message.txt
no changes added to commit (use "git add" and/or "git commit -a")
A continuación, necesitamos preparar (stage) los cambios:
git add message.txt
Y ahora, creemos un nuevo commit sin modificar el anterior:
git commit -m "Add another message"
Deberías ver una salida que confirme el nuevo commit:
[master 1a2b3c4] Add another message
1 file changed, 1 insertion(+)
Ahora, comprobemos git log
de nuevo:
git log --oneline
Esta vez, deberías ver dos commits:
1a2b3c4 (HEAD -> master) Add another message
a1b2c3d Send a message to the future
Ambos commits son visibles en git log
porque el segundo commit se agregó encima del primero, extendiendo el historial de la rama.
Finalmente, comprobemos git reflog
:
git reflog
Deberías ver una salida similar a esta:
1a2b3c4 (HEAD -> master) HEAD@{0}: commit: Add another message
1a2b3c4 (HEAD -> master) HEAD@{1}: commit (amend): Send a message to the future
e4f5g6h HEAD@{2}: commit (initial): Send a message to the future
Observa que git reflog
muestra todas las acciones: el commit inicial, el commit inicial modificado y el nuevo commit que acabamos de crear. Cada acción que movió HEAD
se registra.
Este paso demuestra que cuando creas un nuevo commit sin --amend
, tanto git log
como git reflog
mostrarán el nuevo commit, pero git reflog
seguirá conservando el historial del commit modificado, que git log
no muestra.