Error de Git cuando presiono y jale

Creo un proyecto e inicio git con las siguientes informaciones

git config user.name 'name' git config user.email 'username@gmail.com' 

y presionar el código a github, utilizo git log , y encuentro que la dirección de correo electrónico es incorrecta, así que la actualizo con el siguiente

 git filter-branch --commit-filter ' if [ "$GIT_AUTHOR_EMAIL" = "username@gmail.com" ]; then GIT_AUTHOR_EMAIL="the.username@gmail.com"; git commit-tree "$@"; else git commit-tree "$@"; fi' -f HEAD 

se cambian todas las confirmaciones y vuelvo a enviar esto a github, pero falla con el error

 ! [rejected] master -> master (non-fast-forward) 

y pídeme que tire y tire, pero muestra otro error

 * branch master -> FETCH_HEAD fatal: refusing to merge unrelated histories 

¿Cómo puedo arreglar esto?

Reescribió el historial del repository con la twig de filter. Cuando presionas a github, nota que tus cambios sobrescribirán el historial anterior. Para evitar que pierdas la historia por crash, se niega a hacerlo.

Por lo general, esto sucede cuando otra persona empuja nuevos cambios antes que usted. Al presionar el historial con sus cambios sobrescribiría sus cambios. Entonces, el post de error sugiere que combine sus cambios y luego presione los historiales combinados.

Desde https://help.github.com/articles/dealing-with-non-fast-forward-errors/ : git push origin master a https://github.com/USERNAME/REPOSITORY.git ! [rechazado] maestro -> error maestro (no avance rápido): error al presionar algunas references a ' https://github.com/USERNAME/REPOSITORY.git ' Para evitar que pierda el historial, las actualizaciones no avanzan rápidamente se rechazaron Fusiona los cambios remotos (por ejemplo, 'git pull') antes de volver a presionar. Vea la sección 'Nota sobre los avances rápidos' de 'git push –help' para más detalles.

Sin embargo, en su caso, el consejo no se aplica. No desea fusionar su historial reescrito con su historial anterior. Realmente quieres perder la historia anterior. En este caso, puedes decirle a Git usando git push –force origin master.

Has reescrito todo tu historial con el command filter-branch , y ese historial es diferente de lo que tienes en GitHub. Puede presionar a la fuerza sus confirmaciones locales con git push -f , anulará lo que tenga en GitHub.