has - git update-index-asume-unchanged devuelve error
assume has unchanged git (2)
git update-index --assume-unchanged <filename>
devuelve fatal: Unable to mark file <filename>
.
¿Qué necesito hacer para arreglar esto? ¿De qué se queja y por qué?
¿Se agrega al repositorio, no en .git/info/exclude
y no en .gitignore
?
Si la respuesta es sí a cualquiera de ellos, entonces el archivo no está en el repositorio y esta es la razón del error.
Pruebe git ls-files -o
y vea si el archivo está ahí. No debería ser.
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 está dando el error no se registra en el repositorio. (Aparece en git ls-files -o
que significa que no está rastreado).
Esto puede ocurrir porque estás tratando de ignorar recursivamente un directorio completo así:
find ./folder/ -type f | xargs git update-index --assume-unchanged
Pero no solo se modifican los archivos de esa carpeta, sino que se han creado nuevos archivos. (por ejemplo, por un script de compilación).
Si 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 ten cuidado. Tenga en cuenta que jugar con --assume-unchanged
puede ser un dolor.
Considere volver a trabajar las cosas para que esos archivos no tengan que 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 directorio y de los directorios de trabajo de los usuarios, eso puede ser ideal. Por ejemplo, si los archivos se crean como parte de la compilación, puede crear una biblioteca estática en lugar de que cada desarrollador ejecute el proceso de compilación localmente.