2011-01-03 689 views
10

Tengo una aplicación Ruby on Rails que se bloquea cuando vendor/rails está presente pero funciona bien si no lo está. Necesito mantener esta carpeta eliminada en mi copia local para poder trabajar, pero no quiero que esta eliminación se comprometa nunca. Alguien lo puso allí por una razón.Git ignora la carpeta eliminada localmente

Entonces, ¿cómo elimino esta carpeta sin que aparezca en git status como mil archivos eliminados? Obviamente, .gitignore no funcionará, ya que no puede ignorar los archivos que ya están rastreados. Tampoco funcionan ninguna de las soluciones enumeradas here (git update-index --assume-unchanged).

Respuesta

40
git ls-files --deleted -z | git update-index--assume-unchanged -z --stdin

Tenga en cuenta que debido a que esta es una operación basada en índice, no puede establecer directorios para ignorarlos, solo archivos individuales. Si upstream alguna vez agrega un archivo dentro de esos directorios, tendrá que repararlo nuevamente.

+1

Ah, a la derecha, directorios contra archivos, por supuesto. Eso lo hizo, ¡gracias! –

+8

'git ls-files --deleted -z | git update-index --assume-unchanged -z --stdin' ignora todos los archivos actualmente eliminados. – blinry

+0

@blinry Agregue esto como una respuesta. ¡Funcionó perfectamente para mí! – jmotes

Cuestiones relacionadas