Editar el mensaje de confirmación git en GitHub

173

¿Hay alguna forma de editar en línea el mensaje de confirmación GitHub.comdespués del envío?

Desde la línea de comando, uno puede hacer

git commit --amend -m "New commit message"

como se sugirió correctamente en otra pregunta .

Probar git pully luego git pushha funcionado (sin que ninguna otra confirmación haya interferido mientras tanto ).

¿Pero se puede hacer a través del GitHubsitio web?

PNS
fuente
Consulte la respuesta de @ DanGreen-Leipciger a pesar de que no es la aceptada.
RBT

Respuestas:

101

No, esto no es directamente posible. El hash para cada confirmación de Git también se calcula en función del mensaje de confirmación. Cuando cambia el mensaje de confirmación, cambia el hash de confirmación. Si desea impulsar esa confirmación, debe forzar esa inserción (git push -f). Pero si ya alguien retiró su antiguo compromiso y comenzó un trabajo basado en ese compromiso, tendría que volver a basar su trabajo en su nuevo compromiso.

Dunni
fuente
También podía hacer git pull y luego git push y funcionó. Pero aparentemente no hay forma en línea.
PNS
Todavía no es posible a partir del 5 de abril de 2016
bigT
Y supongo que no será de alta prioridad, ya que cambiaría el historial de confirmación de una rama ya publicada, lo que nunca debería hacer (excepto si está 200% seguro, de que nadie más tiene esta rama en su máquina local).
dunni
Esto es solo a medias. Es cierto, pero solo con suposiciones. La respuesta sería mejor si se combinara con la de @DanGreen (a continuación). No es "directamente posible", y ciertamente viene con advertencias (es decir: "nunca" debe hacer esto ... [excepto cuando esté seguro de que desea] "), pero simplemente decir que esto no es posible, cuando técnicamente es posible, es una respuesta incompleta.
Bane
1
El OP preguntó si es posible hacerlo en línea en el sitio web de Github. AFAIK esto todavía no es posible. Entonces mi respuesta es válida, y la respuesta de Dan Green maneja solo la forma de hacerlo localmente, no en el sitio web de Githubs.
Dunni
145

Instrucciones de GitHub para hacer esto:

  1. En la línea de comando, navegue hasta el repositorio que contiene la confirmación que desea modificar.
  2. Escriba git commit --amendy presione Entrar.
  3. En su editor de texto, edite el mensaje de confirmación y guarde la confirmación.
  4. Use el git push --force example-branchcomando para forzar el empuje sobre la confirmación anterior.

Fuente: https://help.github.com/articles/changing-a-commit-message/

Dan Green-Leipciger
fuente
11
¡TEN CUIDADO! La diferencia entre usar <git commit --amend> & <Enter>, y <git commit --amend -m "new commit message">, es que en el primer caso está editando su mensaje de confirmación en un editor de texto & en el segundo, lo reemplaza con el "nuevo mensaje de confirmación". Si fuerza el empuje, esto reemplazará el commit en su control remoto. Esto NO resuelve el problema de que si otras personas en su equipo han retirado el compromiso anterior, ahora tiene diferentes historiales (incluyendo diferentes compromisos) en diferentes máquinas. Si sabe que nadie ha retirado su compromiso, esto es seguro. Fuente leída publicada por Dan
TMin
77
git commit --amendsiempre ha existido Además, se está confundiendo entre git (que es una herramienta de línea de comandos de código abierto) y Github (que es una empresa que proporciona un alojamiento de código fuente en línea).
vinil
1
El OP preguntó sobre GitHub, y específicamente sobre después de que el commit ha sido enviado a sus servidores. Esas son las instrucciones de GitHub para hacer lo que el OP le pidió.
Dan Green-Leipciger
3
@ DanGreen-Leipciger: sí, pero esto no se hace en el sitio web en sí, se hace usando la línea de comandos. Creo que PNS quería hacerlo desde la interfaz web.
PhistucK
2
El OP preguntó cómo hacerlo específicamente con GitHub, así es cómo hacerlo específicamente con GitHub.
Dan Green-Leipciger
30

Debe git push -fsuponer que nadie ha retirado el otro compromiso antes. Cuidado, estás cambiando la historia.

Tres
fuente
3

No, porque el mensaje de confirmación está relacionado con el SHA / hash de confirmación, y si lo cambiamos, el SHA de confirmación también cambia. La forma en que solía es crear un comentario en esa confirmación. No puedo pensar de otra manera.

Prabowo Murti
fuente
2

Para usuarios de intellij: si desea realizar cambios de forma interactiva para las confirmaciones anteriores, que no se envían, siga los pasos a continuación en Intellij :

  • Seleccionar control de versiones
  • Seleccionar registro
  • Haga clic derecho en el commit para el que desea modificar el comentario
  • Haga clic en cambiar palabra
  • Hecho

Espero eso ayude

Saurabh Valsangkar
fuente
0

Estaba enfrentando el mismo problema.

Vea en su github una rama en particular y conocerá la identificación de confirmación de la primera confirmación en esa rama. hacer un rebase a eso:

git rebase -i

El editor se abrirá. Haga un seguimiento de sus confirmaciones desde la interfaz de usuario de github y el editor abierto y cambie los mensajes.

Priya Jain
fuente