Cómo revertir un 'git filter-branch -f –env-filter'

Soy bastante nuevo con respecto a git y generalmente git commit, pull y push son los únicos commands que hago. Hace poco noté que mis confirmaciones se configuraron con un nombre y un correo electrónico pnetworkingeterminados y deseaba cambiarlo. Estúpidamente corrí esto que encontré en una publicación en alguna parte:

git filter-branch -f --env-filter "GIT_AUTHOR_NAME='Newname'; GIT_AUTHOR_EMAIL='newemail'; GIT_COMMITER_NAME='Newname'; GIT_COMMITTER_EMAIL='newemail';" HEAD 

Pensé que esto cambiaría solo mis compromisos, pero en su lugar cambió todas las confirmaciones en el repository para tener mi nombre y mi correo electrónico. Por supuesto, para continuar mi "estupidez" impulsé los cambios.

También parece que he perdido la historia y todos los commits en github parecen tener una input duplicada también. Uno con mi nombre y mi correo electrónico y el original.

¿Hay alguna manera de revertir esto? ¿Tal vez usando una copy de un tirón anterior para empujar la información original?

Si no has hecho nada para limpiar los objects sueltos después de que hayas hecho el command de filter de twig, puedes restablecer tu twig principal (asumiendo que HEAD fue maestro cuando le diste el command):

 git reset --hard refs/original/master 

Si aún no realizó la limpieza, puede restablecer su bifurcación con: git reset --hard refs/original/master Esto recargará todos los files originales antes de su bash y luego lo hará:

git filter-branch -f --env-filter "GIT_AUTHOR_NAME='Newname'; GIT_AUTHOR_EMAIL='newemail'; GIT_COMMITER_NAME='Newname'; GIT_COMMITTER_EMAIL='newemail';" "--tag-name-filter cat -- --all"

Un colega pudo hablar con algunos profesionales de git y parece que un 'git push -f' de una copy anterior resolvió el problema. Además, necesitaba hacer un git pull –rebase en mi copy.

gracias por su ayuda chicos.