command git para agregar cambios recientes a la última confirmación

Supongamos que he hecho algunos cambios después de un commit determinado de git. ¿Hay alguna forma de poner estos cambios en la misma confirmación anterior? En este momento lo que hago es hacer otro commit y luego hacer un git rebase -i HEAD ~ 2 para combinar ambos commits en uno, pero preferiría una manera más rápida.

¿Algunas ideas?

Si solo tienes cambios en tu directory de trabajo o escenario, entonces puedes usar lo que Git llama para enmendar , y git-commit tiene una opción para eso.

Use --amend como este:

 git commit --amend -a 

Puede reutilizar el post de confirmación anterior con:

 git commit --amend -a --reuse-message=HEAD 

Si tienes varias confirmaciones que deseas networkingucir rápidamente a otra confirmación, entonces git-reset puede ser una herramienta útil.

Digamos que tienes un tree como este (y HEAD apunta a C ):

 A <- B <- C 

Si desea combinar rápidamente B y C en A para crear una confirmación que contenga el contenido de las tres confirmaciones, puede usar la rebase como la que tiene en su pregunta.

O bien, podría usar un reset como este:

 git reset --soft A git commit --reuse-message=HEAD 

La opción --soft se usa para que el contenido de las confirmaciones que son "restablecidas" se pongan en su escenario y estén lists para comprometerse. Por supuesto, podría dar un post de confirmación único si así lo desea.

Tenga en count que estas dos opciones están reescribiendo efectivamente su confirmación (al igual que lo haría una rebase), por lo que habrá un nuevo SHA. Sin embargo, el (los) compromiso (s) antiguo (s) aún está (n) disponible (s) y puede recuperarse utilizando el reflog si es necesario.

Aquí hay un buen enlace para get más información sobre cómo modificar y reescribir el historial. Aquí hay un buen artículo sobre aplastamiento.