ver revertir oneline modificados log deshacer cambios archivos archivo git commit git-rebase git-reset commit-message

revertir - Git: ¿Cómo reutilizar/retener mensajes de confirmación después de ''git reset''?



git ver archivos modificados (4)

Como usuario de Git, me encuentro con regularidad con la situación, tengo que volver a trabajar una o más confirmaciones de una manera que no encaja en --amend o rebase -i con --amend rebase -i . Por lo general, haría algo como

git reset HEAD~1 # hack, fix, hack git commit -a # argh .. do I need to retype my message?

Tomo los mensajes de compromiso bastante sensatos como bastante serios. Por lo general, contienen texto más grande con referencias y justificaciones para el cambio. Hasta ahora, estoy bastante molesto por el largo proceso para recuperar mi antiguo mensaje de compromiso a través de un git reflog , git log y proceso de copiar y pegar.

¿Hay algo mejor para hacer frente a esto? ¿Y cómo sería, si mi comprende más de un compromiso?

Editar: Después de pensar un poco sobre esto, creo que lo que estoy buscando es una funcionalidad parecida a git stash para los mensajes de confirmación donde las correcciones / correcciones no son apropiadas.


¿Por qué reiniciar si puede piratear, arreglar, piratear y luego simplemente ejecutar git commit --amend --no-edit ; por lo tanto, conservando su mensaje de compromiso original.

Para hacer que funcione para varias confirmaciones, solo crea una confirmación temporal con tus cambios más recientes y luego usa una base de datos interactiva para aplastar la confirmación anterior (que contiene el mensaje de confirmación correcta) con la nueva temporal, manteniendo el mensaje de confirmación de la confirmación anterior.


Cuando ejecute el comando "git commit", debe verificar las siguientes opciones,

Reutilizar,

--reuse-message=<commit>

Para editar en reutilización,

--reedit-message=<commit>

Para cambiar el autor,

--reset-author


Después de un git reset , este one-liner puede hacerlo:

git commit --reuse-message=HEAD@{1}

o incluso más corto:

git commit -C HEAD@{1}

Puede usar las otras opciones dadas por @user2718704 .


Podría considerar git commit --reset-author -c <commit> , para reutilizar el mensaje de confirmación con la edición y la hora actual.