gitignore después de cometer

Tengo un repository git alojado en Github. Después de confirmar muchos files, me doy count de que necesito crear .gitignore y excluir .exe , .obj .

Sin embargo, ¿eliminará automáticamente estos files comprometidos del repository? ¿Hay alguna manera de forzar eso?

No, no puede obligar a eliminar un file que ya está comprometido en el repository simplemente porque se haya agregado al .gitignore

Tienes que git rm --cached para eliminar los files que no quieres en el repository. (–cached ya que probablemente desee conservar la copy local, pero elimine del repository). Por lo tanto, si desea eliminar todos los exe de su repository, haga

 git rm --cached /\*.exe 

(Tenga en count que el asterisco * se cita del intérprete de commands – esto permite que git, y no el intérprete de órdenes, amplíe las routes de los files y subdirectorys)

Sin embargo, ¿eliminará automáticamente estos files comprometidos del repository?

No. Incluso con un .gitignore existente puedes .gitignore files "ignorados" con el indicador -f (forzar). Si los files ya están comprometidos, no se eliminan automáticamente.

 git rm --cached path/to/ignonetworking.exe 

Sin embargo, ¿eliminará automáticamente estos files comprometidos del repository?

No.

La 'mejor' receta para hacer esto es usar git filter-branch como está escrito aquí:

La página man para git-filter-branch contiene ejemplos completos.

Tenga en count Reescribirá el historial. Si ha publicado alguna revisión que contenga los files agregados accidentalmente, esto podría crear problemas para los usuarios de esas sucursales públicas. Infórmales, o quizás piense en cuánto necesita eliminar los files.

Nota En presencia de tags, siempre use la opción --tag-name-filter cat para git filter-branch . Nunca duele y le ahorrará el dolor de cabeza cuando se da count más tarde que lo necesitaba

Tuve que eliminar .idea y las carpetas de destino y después de leer todos los comentarios, esto funcionó para mí:

 git rm -r .idea git rm -r target git commit -m 'removed .idea folder' 

y luego presionar para dominar

Incluso después de eliminar los files y luego confirmar, aún tendrá esos files en el historial. Para eliminarlos, considere usar BFG Repo-Cleaner . Es una alternativa a git-filter-branch.

Si aún no ha empujado los cambios:

 git rm -r --cached . git add . git commit -m 'clear git cache' git push