Cómo ignorar los files erróneamente confirmados

Tengo un proyecto de Android y, por error, agregué la carpeta bin al escenario y la comprometí. Ahora, ¿cómo puedo ignorar esta carpeta bin e ignorarla para siempre? Agregué bin / al file .gitignore , pero nada cambia y veo todos los files en esta carpeta en copy de trabajo en SourceTree.

Estoy usando SourceTree como el cliente de git.

Además de ignorar la carpeta, debes git rm . Git solo ignora los files que aún no están bajo su control.

Tenga en count, sin embargo: al hacerlo, hará que Git elimine esa carpeta para cualquier otra persona que haga esos cambios. Es mejor que se asegure de que la carpeta sea solo el resultado de la construcción, o que se pueda rebuild fácilmente.

Si aún no ha publicado los cambios (es decir, si nunca los ha empujado a ninguna parte y nadie los ha sacado de usted), entonces tiene la opción de volver a escribir el historial. Puedes simplemente decir git reset --soft the_commit_before_you_added_bin (por supuesto, necesitarás el ID de confirmación real, u otro nombre para él, como HEAD~3 etc.) para básicamente "no comprometer" al derecho antes de agregarlo. Su copy de trabajo todavía tendrá las últimas versiones de los files, pero Git olvidará que los cometió. (Esto también significa que pierde los cambios intermedios). Luego puede volver a hacer su (s) compromiso (s), teniendo cuidado de evitar el bin esta vez.

Git tiene un command de filter-branch que supuestamente puede ayudar con la automation de todo eso, e incluso puede preservar los cambios intermedios. Sin embargo, nunca lo he usado y no podría decirte cómo usarlo.


Obligatorio Big Bold Advertencia:

No reescriba el historial que ya ha sido publicado.

Solo deshacer / reescribir confirmaciones que nunca se han empujado o tirado. De lo contrario, se produce la locura.