Si tiene que cambiar un mensaje de confirmación de edad a través de múltiples ramas (es decir, el envío de datos con el mensaje erróneo está presente en múltiples ramas) es posible que desee utilizar
git filter-branch -f --msg-filter 'sed "s/<old message>/<new message>/g"' -- --all
para reemplazar el mensaje de confirmación.
Git creará un directorio temporal para volver a escribir y, además, hará una copia de seguridad de las referencias antiguas en refs/original /.
-f
exigirá la ejecución de la operación. Esto es necesario si el directorio temporal ya está presente o si ya hay referencias almacenadas en refs/original. Si ese no es el caso, puede soltar esta bandera.
--
separa las opciones de filtro de la rama de opciones de revisión
--all
se asegurará de que todas las ramas y etiquetas se vuelven a escribir.
Debido a la reserva de sus viejas referencias, puede fácilmente volver al estado anterior a la ejecución del comando.
Say, que desea recuperar su maestro y acceder a ella en la rama old_master:
git checkout -b old_master refs/original/refs/heads/master
Una vez que esté satisfecho con los cambios utilizan git push -f para empujar los cambios a tu repositorio público.
en cuenta que debe informar a sus colaboradores sobre esto ya que todos los hashes de las confirmaciones de comenzar con la primera modificación se han cambiado.
complication (?): Hay otras confirmaciones después de 'screwed' (publicado por mí) – jonny
¿No es esto un duplicado de [¿Cómo envío el compromiso modificado al repositorio de git remoto?] (Http: // stackoverflow .com/preguntas/253055/cómo-do-i-push-modificado-entrega-a-la-distancia-git-repo)? –