git filter-branch –msg-filter para reescribir un post de confirmación push

¿Cómo puedo volver a networkingactar el post de una confirmación anterior que ya se envió a un control remoto privado? Quiero conservar las marcas de time y tags.

Encontré este command aquí :

git filter-branch -f --msg-filter \ 'sed "s/<old message>/<new message>/g"' -- --all 

Para mantener las tags agregué: --tag-name-filter cat

Al ejecutar el command, git me dice: el filter msg falló

El post que quiero cambiar es un post combinado "Merge branch 'release / …'" ¿este es el problema?

La solución fue escaping de la barra en "lanzamiento / …" usando una barra invertida. Entonces el command que utilicé fue:

 git filter-branch -f --msg-filter \ 'sed "s/release\/Version-[0-9].[0-9].[0-9]/develop/g"' \ --tag-name-filter cat -- --all 

Aquí hay una versión ligeramente mejorada que también actualiza todas las references a los hashes de confirmación en los posts de confirmación sobre la marcha al hacer filter-branch:

 rm -f /tmp/git; touch /tmp/git; git filter-branch \ --subdirectory-filter <DIRECTORY> \ --tag-name-filter cat \ --commit-filter 'echo -n "s/${GIT_COMMIT}/" >>/tmp/git; \ NEW=`git_commit_non_empty_tree "$@"`; \ echo "${NEW}/g" >> /tmp/git; echo ${NEW}' \ --msg-filter 'sed -f /tmp/git' \ -- --all