Con egit, ¿cómo puedo cambiar solo la descripción de una confirmación más antigua (no la última confirmación)?

Context:

Estoy aprendiendo cómo usar git con Eclipse y lo estoy usando para un proyecto pequeño con solo un repository local.

Problema:

  • Me acabo de dar count de que una confirmación que hice anteriormente tiene una descripción incorrecta adjunta.
  • No hay nada de malo en los files que he comprometido ni en nada, salvo por motivos de claridad (si quiero revertir o lo que sea) me gustaría cambiar la descripción que es engañosa.
  • No puedo modificar la confirmación anterior ya que he realizado más commits desde entonces.

Floundering intenta resolver el problema:

De diversas maneras intenté crear nuevas twigs, enmendando compromisos y luego reformulando, pero terminé con un montón de conflictos de fusión de aspecto aterrador y un tree de historia con apariencia de spaghetti. Podría copyr y pegar mis nuevos commits en files txt, volver al commit con la información incorrecta y comenzar de nuevo desde allí, pero me imagino que el objective de usar git es evitar hacer cosas como esas.

Pregunta:

¿Existe una forma simple de cambiar el text de descripción de un compromiso anterior?

Si no, ¿cuáles son los pasos para la forma complicada en egit?

Si ya presionó las revisiones en algún lado: ¡no !

De lo contrario: use git rebase -i <SOME_OLD_REVISION> y marque los commits a ser cambiados con la opción r(eword) .

Una vez que cierre el file que apareció, se iniciará la rebase y se le solicitará cada confirmación que elija para ingresar el nuevo post de confirmación.

Supongamos que tiene el siguiente historial de confirmaciones (el más nuevo primero):

 f6f6f6f last commit d4d4d4d ... c3c3c3c third commit b2b2b2b second commit a1a1a1a first commit 

Y desea cambiar los posts para b2b2b2b y c3c3c3c , lo haría

 git rebase -i a1a1a1a 

A continuación, aparecerá su editor favorito y le mostrará este cuadro de dialog:

 pick f6f6f6f last commit pick ... pick c3c3c3c third commit pick b2b2b2b second commit # Rebase b2b2b2b..f6f6f6f onto a1a1a1a # # Commands: # p, pick = use commit # r, reword = use commit, but edit the commit message # e, edit = use commit, but stop for amending # s, squash = use commit, but meld into previous commit # f, fixup = like "squash", but discard this commit's log message # x, exec = run command (the rest of the line) using shell # # These lines can be re-ordenetworking; they are executed from top to bottom. # # If you remove a line here THAT COMMIT WILL BE LOST. # # However, if you remove everything, the rebase will be aborted. # # Note that empty commits are commented out 

Cambie pick to r o b2b2b2b para commits b2b2b2b y c3c3c3c , guarde el file y salga del editor.

A continuación, comenzará el rebase.

Para los commits que eligió para reword a reword , puede ingresar el nuevo post de confirmación.