git cambia todo el historial para los nombres de los confirmadores y el correo electrónico para el confirmador específico

Cómo no puedo cambiar el nombre y el correo electrónico para todo mi historial de confirmaciones, sino para un responsable específico.

algo así, foreach allcommits if committer_name = "Hugo Casa" change: committer_name committer_email author_name author_email

y después de hacer esto, presione y actualice los datos del historial.

Por favor, ayuda, busqué y encontré esto:

git filter-branch --commit-filter '
        if [ "$GIT_COMMITTER_NAME" = "production251" ];
        then
                GIT_COMMITTER_NAME="Hugo Casanova";
                GIT_AUTHOR_NAME="Hugo Casanova";
                GIT_COMMITTER_EMAIL="hugo.casanova.ibusplus.com";
                GIT_AUTHOR_EMAIL="hugo.casanova.ibusplus.com";
                git commit-tree "$@";
        else
                git commit-tree "$@";
        fi' HEAD


git filter-branch --env-filter '
    oldname="(old name)"
    oldemail="(old email)"
    newname="(new name)"
    newemail="(new email)"
    [ "$GIT_AUTHOR_EMAIL" = "$oldemail" ] && GIT_AUTHOR_EMAIL="$newemail"
    [ "$GIT_COMMITTER_EMAIL" = "$oldemail" ] && GIT_COMMITTER_EMAIL="$newemail"
    [ "$GIT_AUTHOR_NAME" = "$oldname" ] && GIT_AUTHOR_NAME="$newname"
    [ "$GIT_COMMITTER_NAME" = "$oldname" ] && GIT_COMMITTER_NAME="$newname"
    ' HEAD

pero ... después de eso: escriba: git log --pretty = format: "% an" | sort -u y el nombre de la producción251 muestran ..

Encontré un nuevo código:

git filter-branch --force --env-filter 'if ["$ GIT_COMMITTER_NAME" = dmiguel "]; luego GIT_COMMITTER_NAME =" Diana Miguel "; GIT_COMMITTER_EMAIL =" paola.miguel@ibusplus.com "; GIT_AUTHOR_NAME =" Diana Miguel " ; GIT_AUTHOR_EMAIL = "paola.miguel@ibusplus.com"; fi '- --todos

esto esta bien? ¿o no? después de poner este código en la terminal (ubuntu), ¿necesita algún código adicional ?, ¿empujar o algo?