Historia cambiante
Si es la confirmación más reciente, simplemente puede hacer esto:
git commit --amend
Esto abre el editor con el último mensaje de confirmación y le permite editar el mensaje. (Puede usar -m
si desea borrar el mensaje anterior y usar uno nuevo).
Emprendedor
Y luego, cuando empujes, haz esto:
git push --force-with-lease <repository> <branch>
O puedes usar "+":
git push <repository> +<branch>
O puedes usar --force
:
git push --force <repository> <branch>
Tenga cuidado al usar estos comandos.
Si alguien más empujó los cambios a la misma rama, probablemente desee evitar destruir esos cambios. La --force-with-lease
opción es la más segura, ya que abortará si hay algún cambio ascendente (
Si no especifica la rama explícitamente, Git usará la configuración de inserción predeterminada. Si su configuración de inserción predeterminada es "coincidente", puede destruir los cambios en varias ramas al mismo tiempo.
Tirar / buscar después
Cualquier persona que ya se haya retirado recibirá un mensaje de error, y deberá actualizar (suponiendo que ellos mismos no estén haciendo ningún cambio) haciendo algo como esto:
git fetch origin
git reset --hard origin/master # Loses local commits
Tenga cuidado al usar reset --hard
. Si tiene cambios en la rama, esos cambios serán destruidos.
Una nota sobre la modificación del historial
Los datos destruidos son realmente solo el antiguo mensaje de confirmación, pero --force
no lo saben, y felizmente también eliminarán otros datos. Así que piense --force
como "Quiero destruir datos, y sé con certeza qué datos se están destruyendo". Pero cuando se confirman los datos destruidos, a menudo puede recuperar las confirmaciones antiguas del registro de datos: los datos se quedan huérfanos en lugar de destruidos (aunque las confirmaciones huérfanas se eliminan periódicamente).
Si no crees que estás destruyendo datos, aléjate de --force
... podrían ocurrir cosas malas .
Por eso --force-with-lease
es algo más seguro.