Comandos del historial de commit git
- Modificar la confirmación y los mensajes anteriores
- Modificar y desplazar confirmaciones y mensajes anteriores
- Salir de rebase
- Mostrar registro de referencia
- Mostrar registro de referencia del tipo de rama
- Eliminar commit anterior
- Reiniciar rebase
- Cancelar reinicio anterior
- Copiar commit de otra rama
- Buscar mensaje de confirmación
Modificar la confirmación y los mensajes anteriores
$ git commit --amend
Añada la opción --amend
para sobrescribir el último commit de la rama en la que está trabajando.
Cuando no hay archivos en un índice, puede volver a comprometerse con la confirmación anterior añadiendo la opción --amend
, y se le pedirá que edite el mensaje de confirmación existente.
Véase:
- Conceptos básicos de Git > Modificar commits
-
Cómo usar Git > Modificar un commit
Modificar y desplazar confirmaciones y mensajes anteriores
$ git rebase -i <commit>
Añada un hash de confirmación y aparecerá una lista de todas las confirmaciones hasta la última. Busque la confirmación que desea modificar y cambie esa línea de pick
a edit
, luego guarde y salga.
A continuación, añada la opción --amend
al commit. Aparecerá una pantalla para añadir un mensaje. Modificar el mensaje.
$ git commit --amend
Finalmente, añada la opción --continue
para ejecutar la rebase.
$ git rebase --continue
Véase:
$ git rebase --abort
Si desea salir de la operación de rebase, puede hacerlo añadiendo la opción --abort
.
Mostrar registro de referencia
$ git reflog
El comando reflog permite ver una lista de commits que HEAD solía indicar en el pasado.
08084a5 HEAD@{0}: commit: append description of the pull command
99daed2 HEAD@{1}: commit: append description of the commit command
48eec1d HEAD@{2}: checkout: moving from main to issue1
326fc9f HEAD@{3}: commit: append description of the add command
48eec1d HEAD@{4}: commit (initial): first commit
Se mostrarán tanto los commits borrados como los confirmados con éxito recopilados por rebase.
Mostrar registro de referencia del tipo de rama
$ git reflog <ref>
Esto mostrará una lista de commits por cada vez que la punta de <ref>
haya cambiado, similar a la de abajo.
445e0ae issue1@{0}: commit (merge): Merge branch 'main' into issue1
1c904bd issue1@{1}: commit (amend): modify description of the pull command
08084a5 issue1@{2}: commit: append description of the pull command
99daed2 issue1@{3}: commit: append description of the commit command
48eec1d issue1@{4}: branch: Created from 48eec1ddf73a7fb508ef664efd6b3d873631742f
Podemos ver el historial de rebase tanto de los commits eliminados como de los existentes.
Eliminar commit anterior
$ git reset --hard HEAD~
Véase:
- Conceptos básicos de Git > Eliminar commits
-
HCómo usar Git > Eliminar un commit anterior
Reiniciar rebase
$ git reset --hard <commit>
Use el comando reflog para buscar commits antes de que fueran rebasados. Identifica el hash del commit o el valor de [HEAD@{number}]
del commit que se produjo antes del rebase. En este ejemplo, 71bdfbd
y HEAD@{4}
son las referencias a la confirmación.
a51f8d2 HEAD@{0}: rebase -i (finish): returning to refs/heads/dev
a51f8d2 HEAD@{1}: rebase -i (squash): update 1
3a273e1 HEAD@{2}: rebase -i (squash): updating HEAD
f55ef69 HEAD@{3}: checkout: moving from dev to f55ef69
71bdfbd HEAD@{4}: commit: update 2
f55ef69 HEAD@{5}: commit (amend): update 1
Añada el valor hash (71bdfbd
y HEAD@{4}
) a <commit>
al ejecutar el comando reset.
La posición de cabecera de la rama se moverá ahora a la confirmación anterior a la ejecución del rebase. El estado de la rama ahora será idéntico al que tenía antes de ejecutar rebase.
Cancelar reinicio anterior
$ git reset --hard ORIG_HEAD
ORIG_HEAD se refiere al commit anterior al reinicio. Puede revertir el reset anterior utilizando reinicio a ORIG_HEAD.
Copiar commit de otra rama
$ git cherry-pick "<commit>"
La confirmación identificada por su hash se copiará en la rama actual.
Véase:
- Conceptos básicos de Git > Copiar commits a otras ramas
-
Cómo usar Git > Copiar un commit a una rama diferente
Buscar mensaje de confirmación
$ git log --grep "<pattern>"
Muestra las confirmaciones con el texto especificado en <pattern>
.