2011-12-22 13 views

Respuesta

12

¿Se ha agregado al repositorio, no en .git/info/exclude y no en .gitignore?

Si la respuesta es sí a cualquiera de estos, entonces el archivo no está en el repositorio y este es el motivo del error.

Pruebe git ls-files -o y vea si el archivo está allí. No debería ser.

+0

Aún obtendrá el mismo error si sus archivos están en etapas, por lo que es posible que deba hacer un "git reset HEAD " primero. – DavidJ

3

Está ejecutando git update-index --assume-unchanged porque tiene archivos que están registrados en el repositorio pero desea ignorar las ediciones locales.

Como señala Pedro, el archivo que le da el error no está registrado en el repositorio. (Se manifiesta en git ls-files -o que significa que es sin seguimiento.)

Esto puede ocurrir porque estás tratando de ignorar un directorio completo de forma recursiva de este modo:

find ./folder/ -type f | xargs git update-index --assume-unchanged 

Pero no sólo son archivos de esa carpeta modificados , se han creado nuevos archivos. (. Por ejemplo, mediante un script de compilación)

Si no está seguro de que desea ignorar todos los archivos modificados, puede hacerlo con este comando:

git ls-files -m | xargs git update-index --assume-unchanged 

Pero cuidado. Tenga en cuenta que jugar con --assume-unchanged puede ser una molestia.

Considere volver a trabajar las cosas por lo que esos archivos no necesitan estar en el repositorio en absoluto. Luego puede agregarlos a su .gitignore y eliminarlos del repositorio con git rm --cached.

Si puede mantener los archivos fuera del repositorio y de los directorios de trabajo de los usuarios, eso puede ser ideal. Por ejemplo, si los archivos se crean como parte del edificio, puede crear una biblioteca estática en lugar de que cada desarrollador ejecute el proceso de compilación localmente.

Cuestiones relacionadas