¿Cómo ignorar por completo los directorys que hasta ahora estaba rastreando bajo control de versiones usando git?

Estoy usando Ruby on Rails, la gem y git de Capistrano. Me gustaría no poner más bajo el control de versiones algunos directorys que hasta ahora estaba rastreando .

Para mi aplicación, tengo una estructura de sistema de files como la siguiente:

... .gitignore /public/aaa/000/001 /public/aaa/000/002 /public/aaa/000/003 /public/aaa/000/... 

Para lograr eso .gitignore , cambié el file .gitignore y le agregué las siguientes líneas:

 # Ignoring "/public/aaa/*" directories public/aaa/ 

Sin embargo, si compruebo qué directorys están bajo control de versión, veo que aquellos a los que me gustaría ignorar siguen siendo rastreados . Entonces, cuando despliego con Capistrano al server remoto, el contenido de esos directorys aún está cambiando.

¿Cómo puedo definitivamente ignorar esos directorys?


En pocas palabras, lo que me gustaría hacer es no cambiar public/aaa directorys public/aaa files public/aaa en la máquina remota (y, por lo tanto, no rastrearlos con git en mi máquina local) para que cuando implemente con Capistrano esos las carpetas (en la máquina remota) están intactas .

Tendrá que eliminarlos antes de que desaparezcan del control de origen. Todavía son parte de tu repository git, así que git continuará prestándoles atención.

 git rm -r --cached public/aaa 

El -r le dice a git que elimine el directory (al igual que rm -r en la console) y --cached le dice a git que deje el file (s), simplemente quítelo del repository.

Puede usar git update-index --assume-unchanged <filename> . Esto mantendrá los files a su alnetworkingedor, pero ya no rastreará sus cambios.

Puedes hacer esto recursivamente con
find ./folder/ -type f | xargs git update-index --assume-unchanged