¿Cómo edito un mensaje de confirmación incorrecto con TortoiseGit?

Respuestas:

160

Si el compromiso es el jefe de la rama actual, eso es fácil.

  1. Menú contextual -> Git Commit
  2. Marque la casilla de verificación "Modificar última confirmación"
  3. Corrija su mensaje de confirmación
  4. Okay

Si la confirmación es la cabecera de otra rama, cambie primero a esa rama.

  1. Menú contextual -> TortoiseGit -> Switch / Checkout
  2. Elija el nombre de la sucursal
  3. Okay
  4. Siga los pasos 1-4 anteriores para modificar el mensaje de confirmación

Si la confirmación está en el medio sin ninguna fusión entre la cabeza, debe restablecer, enmendar y seleccionar

  1. Menú contextual -> TortoiseGit -> Registro
  2. Seleccione el compromiso -> Menú contextual -> Restablecer
  3. Restablecimiento completo ( esto descartará todo el trabajo contenido en las confirmaciones por encima de la confirmación seleccionada, así como cualquier cambio no confirmado en el directorio de trabajo )
  4. Okay
  5. Siga los pasos 1-4 anteriores para modificar el mensaje de confirmación
  6. Seleccione de la cabeza a una confirmación por encima de ella -> Menú contextual -> Cherry-pick
  7. Seguir
linquizar
fuente
12
Realmente extraño el "Editar mensaje de registro" de TortoiseSVN. ¿Alguna posibilidad de que agreguen esa característica?
Benoit Blanchon
3
Estoy perdido en el paso 6, ¿a qué te refieres con "Seleccionar de la cabeza a una confirmación por encima"? ¿Es esa una opción en el menú contextual?
Flethuseo
1
perdido en el paso 6 también. no hay opción de selección de cereza en ninguna parte, y no puedo ver la confirmación anterior en ningún caso (solo dice cambios de directorio de trabajo, de los cuales en realidad no hay ninguno)
Robert Ivanc
13
Voto en contra porque creo que las sugerencias en el caso de que la confirmación esté en el medio me han hecho descartar mis cambios de código hasta esa confirmación, que son varias semanas de trabajo.
Samuel
8
ADVERTENCIA: Utilice "Crear rama en esta versión" para establecer un nombre de rama temporal antes de restablecer la confirmación que desea modificar. De lo contrario, corre el riesgo de perder todas las confirmaciones por encima de este punto. (Si esto ya te sucedió, git reflogte ayudará a recuperarlos).
Steve Pitchers
19

Para el caso de cuando el compromiso está en el medio, recomiendo encarecidamente no seguir las instrucciones proporcionadas por linquize, consulte los comentarios debajo de su respuesta para conocer el motivo.

  1. Puede usar la línea de comando git con TortoiseGit y no causará ningún problema: ¿Puedo usar herramientas Git de línea de comando y TortoiseGit simultáneamente? .

  2. Este video de youtube lo explica muy bien: http://youtu.be/4YjKY0u9Z6I . Básicamente use git rebase -i y luego simplemente "reescriba" el mensaje de confirmación.

Actualización: creo que puede recuperar las confirmaciones perdidas del restablecimiento completo sugerido por linquize, vea la respuesta de Wayne aquí: ¿Cómo puedo reordenar / combinar confirmaciones usando Git rebase?.

Samuel
fuente
7
Convenido. git me está tomando muchísimo tiempo aprender a usarlo, SVN fue tan simple. El concepto de git es simple, pero su uso no lo es.
Samuel
TortoiseGit también ofrece rebase interactivo, no necesita usar la línea de comando para esto.
Peter
13

Yo diría que el mejor método para modificar cualquier mensaje de confirmación es usar la force rebaseopción en tortoisegit.

Vea esta respuesta sobre Cómo reordenar confirmaciones (rebase) con TortoiseGit . El mismo método se puede utilizar para editar mensajes de confirmación.

  • Cuando esté en el cuadro de diálogo de rebase, haga clic con el botón derecho en la confirmación que desea editar y seleccione la Editopción. Puede optar por editar varias confirmaciones.
  • Haga clic en el Start Rebasebotón.
  • Rebase se detendrá en las confirmaciones que ha marcado para Edit
  • Haga clic en la Commit Messagepestaña en la parte inferior y edite el mensaje
  • Haga clic en el Amendbotón para continuar
geoji
fuente