Tengo el mismo problema que el OP en esta publicación, pero no entiendo la respuesta marcada como correcta (no veo que explique cómo solucionar la situación)
Hago esto y obtengo este error:
$ git update-index --assume-unchanged web.config
fatal: Unable to mark file web.config
El archivo se agrega al repositorio
NO está en
.git/info/exclude
NO está en
.gitignore
(estaba, pero lo saqué, luego forcé a agregar web.config usandogit add -f web.config
, comprometió y empujé esos cambios al repositorio)Cuando hago Git ls-files -o NO está allí
Entonces, ¿qué puedo hacer para arreglar?
git ls-files -o
. Si es así, no está en el repositorio.Respuestas:
Estaba teniendo el mismo problema que usted, seguí los mismos cuatro pasos que indicó anteriormente y obtuve los mismos resultados. Esto incluyó el hecho de que mi archivo estaba en la lista al ejecutar
git ls-files -o
. Sin embargo, en mi caso, también intenté ejecutargit update-index --assume-unchanged
contra un archivo que no estaba en la lista al ejecutarls-files -o
, y aún recibí el mismo error "fatal: Unable to mark file
".Pensé que tal vez era un error, y descargué la última versión de git, pero esto no ayudó.
¡Finalmente me di cuenta de que este comando distingue entre mayúsculas y minúsculas! Esto incluye la ruta completa y el nombre del archivo. Después de actualizar la ruta al directorio para que se especifique la ruta completa con la carcasa adecuada, el comando se ejecutó correctamente.
Tenga en cuenta que esto fue con Git para Windows, por lo que sus resultados pueden variar con otras plataformas.
fuente
Estaba teniendo el mismo problema en una Mac. La distinción entre mayúsculas y minúsculas no fue un problema para mí; el problema era que primero necesitaba restablecer mi git:
Problema:
Solución:
fuente
--skip-worktree
). Me deshice de los cambios locales ejecutando,git restore .
pero skip todavía dio el error. Finalmente intenté eliminar el archivo. Sorprendentemente, git no dijo que hubo un cambio. Claramente, ha sucedido algo funky ya que git definitivamente lo estaba rastreando y definitivamente lo eliminé y definitivamente no decía que eso era un cambio.En mi caso, el árbol que estaba marcando era un directorio, y no un archivo como en su caso, y me faltaba la barra diagonal después de su nombre.
Incorrecto
Correcto -
Tenga en cuenta la barra diagonal (/) al final.
fuente
fatal: no se puede marcar la localización del archivo / el-GR.js
Lo que puedes hacer es:
$git update-index --assume-unchanged <file name>
Esto me ayudó! :)
fuente
$ git update-index --assume-unchanged ./.idea/vcs.xml fatal: Unable to mark file .idea/vcs.xml
$ cd .idea
git update-index --assume-unchanged .
Trabajado, gracias!Si su ruta tiene espacios, puede obtener este error incluso si tiene la carcasa correcta.
Esto da como resultado el error "fatal":
Para solucionarlo, simplemente agregue comillas alrededor de la ruta.
fuente
Mi problema fue que probé el comando con un comodín * suponiendo que sería recursivo, pero no fue así.
Entonces lo que hice fue
ejecutando
funcionó para mí entonces y no resultó en OP y mi problema.
fuente
Tuve este problema cuando intentaba eliminar los archivos * .orig.
Esto es lo que hice para descubrirlos:
si eso no funciona:
fuente
Asegúrese de que el archivo se agrega a git repo, si no, agregue el archivo en git repo y luego intente que funcione.
fuente
--assume-unchanged
se trata de sistemas de archivos lentos, y los usuarios prometen que Git no necesita verificar este archivo, ya que Git puede asumir que no ha cambiado. ¡Pero algunos comandos aún comprueban y producen 'sorpresa'!No lo use en archivos que cambien.
Lamento ser el portador de esa noticia (tengo un parche en proceso para cambiar esa documentación).
fuente
git rm --cached filename
eliminará el archivo cuando otros tirenEn mi caso, intenté usar cualquiera de los métodos anteriores, pero no tuve suerte.
Después de muchos intentos, solo pensé en agregar mi archivo para indexarlo.
Git rechazó esta acción, pero me aconsejó que lo hiciera por la fuerza.
Y eso funcionó para mí.
fuente
Asegúrese de tener "web.config" registrado.
Si no es así, recibirá este mensaje de error.
fuente
Quizás útil para alguien. Tuve el mismo problema y no tenía problemas de sintaxis, no tenía nombres con espacios, no tenía problemas de ruta y el comando git reset no funcionaba. Me estaba comprometiendo desde una carpeta dentro de apache www y se detuvo el servicio de apache. Comenzó de nuevo el servicio Apache y el error desapareció
fuente
Un error común al usar este comando es tratar de asumir que git ya no ha rastreado el archivo o ya lo ha ignorado.
Asegúrese primero de que el archivo se rastrea ejecutando
Si no muestra su archivo, debe agregarlo primero:
Si esto muestra su archivo, o si ya ha agregado ese archivo a git, entonces debería poder ejecutar los comandos de git asumir normalmente:
o para carpetas
puede verificar si se supone que su archivo se ignora ejecutando
El carácter S representa los archivos omitidos.
fuente
Para todos los futuros visitantes. Ninguno de los anteriores resolvió mi problema. Lo que me di cuenta es que el
.gitignore
archivo debe colocarse en el directorio correcto. En mi caso, una vez que me mudé.gitignore
al directorio raíz de la aplicación, el problema se resolvió.fuente
Compruebe si el archivo a marcar existe y se escribe correctamente, especialmente la ruta del archivo y el separador de archivos. Los separadores de archivos del sistema de Windows y el sistema de Linux están en diferentes direcciones.
fuente
Descubrí que a veces esto no funciona porque ya has enviado el archivo a tu .gitignore e hiciste un push o pull. Solo necesita hacer la inserción y su archivo debe ignorarse en las confirmaciones posteriores incluso cuando modifique localmente el archivo.
fuente
Tuve el mismo problema con Cygwin en Windows. Dando la ruta completa del archivo
fuente