Eliminar un file que no debería haberme comprometido con Git

Entonces hice algo malo.

En algún momento durante el curso de hacer un montón de cambios, me di count de que un file no deseado se había queuedo en una o dos confirmaciones. Debido a que no me di count de esto hasta más tarde, las confirmaciones que incluían el file ahora se han enviado al control remoto. Quiero y necesito los commits, solo quiero eliminar este file específico de ellos.

Lo que necesito hacer, por supuesto, es alcanzar cada rincón y grieta de mi tree (local y remoto) y borrar ese file. He intentado algunas cosas usando filter-branch y filter-tree , pero cuando bash presionar, los cambios son rechazados.

¿Cuáles son mis opciones? ¿Qué estoy haciendo mal?

Gracias.

ACTUALIZAR

A request de max, aquí está el post que recibo cuando bash presionar:

 $ git push origin develop To git@codaset.com:robwilkerson/cakephp-polyclip-plugin.git ! [rejected] develop -> develop (non-fast-forward) error: failed to push some refs to 'git@codaset.com:robwilkerson/cakephp-polyclip-plugin.git' To prevent you from losing history, non-fast-forward updates were rejected Merge the remote changes before pushing again. See the 'Note about fast-forwards' section of 'git push --help' for details. 

¿Agregaste -f (fuerza) al empuje git? Sin esa bandera, no puede sobrescribir las confirmaciones "antiguas".

 -f, --force Usually, the command refuses to update a remote ref that is not an ancestor of the local ref used to overwrite it. This flag disables the check. This can cause the remote repository to lose commits; use it with care. 

Puede ser complicado si otros ya han sacado de ese repository.

Hay una buena guía en GitHub, que podría ayudarte.

Podrías simplemente implementar la corrección como 'nueva solución', por ejemplo, eliminar los files ahora y enviar la corrección al repository.

Luego, debería propagarse a todas las sucursales cuando se sincronicen con su versión donde realizó el cambio.