Git enmendar / reescribir (sin agregar / cambiar files)

A menudo quiero editar un post de confirmación sin tener que volver a seleccionar el set de files desde la última confirmación.

git commit file1.c file2.c 

Error accidental en el post de confirmación.

 git commit file1.c file2.c --amend 

Esto funciona, pero me gustaría no tener que volver a seleccionar el set de files del commit original, una vez accidentalmente git commit -a --amend y agregué muchos cambios involuntariamente.

Sé acerca de git rebase -i HEAD~1 luego reemploop pick con r (re-word), pero esto termina siendo unos pocos pasos.

¿Hay alguna manera de volver a networkingactar el último compromiso en un solo paso sin include ningún file nuevo?

Enmendar post sin cambios escalonados

Siempre que no haya cambios organizados en su área de ensayo, simplemente puede usar

 git commit --amend 

para editar el post de su compromiso anterior 1 .

Mensaje de modificación incluso con cambios por etapas

Sin embargo, si tiene cambios --only puede usar la --only (o -o ) en combinación con --amend para editar solo el post de la confirmación anterior, sin realizar cambios por etapas:

 git commit --amend --only git commit --amend -o # Shorter 

Esta opción fue señalada por David Ongaro en su respuesta .

Documentación

Como se indica en la documentation de git commit (énfasis mío):

 -o --only 

Realice una confirmación solo desde las routes especificadas en la línea de command, sin tener en count los contenidos que se hayan organizado hasta el momento. Este es el modo pnetworkingeterminado de operación de la confirmación de git si se da alguna ruta en la línea de command, en cuyo caso esta opción se puede omitir. Si esta opción se especifica junto con –men , no es necesario especificar routes, que se pueden utilizar para modificar el último compromiso sin comprometer los cambios que ya se han realizado.

1 Según lo mencionado por Minitech y otros.

Simplemente use git commit --amend sin ningún otro argumento. Abrirá el editor y podrá cambiar su post de confirmación.

Puedes hacer git commit --amend -m <new commit message> . Por supuesto, la precaución es garantizar que no haya cambios escalonados como se menciona en otras respuestas.