no se puede eliminar el archivo que realmente existe - fatal: pathpec ... no coincide con ningún archivo
Tengo un archivo bajo control de git que simplemente no se eliminará. El comando que falla es:
$ git rm .idea/workspace.xml
fatal: pathspec '.idea/workspace.xml' did not match any files
A continuación enumero el contenido del directorio, las ramas, etc. Hasta ahora he intentado rm desde dentro del directorio y escapo por si hay caracteres divertidos, y estoy realmente perplejo. Busqué en la web y SO, pero no pude encontrar esto específicamente. ¡Gracias por adelantado!
$ git branch -a
* dot-output
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/modelspace
$
$ git status
# On branch dot-output
# Untracked files:
# ...
$ ls .idea/
ant.xml encodings.xml modules.xml workspace.xml
compiler.xml inspectionProfiles scopes
copyright libraries testrunner.xml
dictionaries misc.xml vcs.xml
$ ls -al
total 56
drwxr-xr-x 16 matt staff 544 Apr 10 11:33 .
drwxr-xr-x@ 33 matt staff 1122 Apr 10 09:40 ..
-rw-r--r--@ 1 matt staff 12292 Apr 10 11:19 .DS_Store
drwxr-xr-x 18 matt staff 612 Apr 10 11:39 .git
-rw-r--r-- 1 matt staff 98 Mar 6 13:40 .gitignore
drwxr-xr-x 16 matt staff 544 Apr 10 11:34 .idea
-rw-r--r-- 1 matt staff 1113 Feb 25 11:07 README
...
$ head -n 2 .idea/workspace.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
$ git rm .idea/workspace.xml
fatal: pathspec '.idea/workspace.xml' did not match any files
ACTUALIZAR: Las respuestas de Nevik y Boris ayudaron mucho. Me di cuenta de que estaba confundido por una serie de cosas que estaban sucediendo, algunas de las cuales fueron exacerbadas por IntelliJ IDEA (una herramienta que generalmente amo, por cierto). Primero, el mensaje 'fatal: pathpec' de git rm es inútil y engañoso (en opinión de este usuario de vainilla). En segundo lugar, tenía el archivo en .gitignore, pero lo había eliminado antes de hacer mi pregunta. Sin embargo, también se incluyó en la función de archivos ignorados de IDEA independientemente de git, y se mostró como tal en el visor del proyecto (en lugar de sin seguimiento, como lo mostró el estado de git). Finalmente, tenía IDEA ejecutándose mientras estaba experimentando, y parece que estaba recreando el archivo inmediatamente después de mi rm. Entonces, mi conclusión es que si me estoy confundiendo el comportamiento de Git, asegúrese de salir de IDEA y trabajar soley en la línea de comando (y gitk) durante la depuración. Y que los usuarios de SO son increíbles. ¡Gracias de nuevo!
fuente
rm
lugar degit rm
?git clean -f .idea/workspace.xml
para eliminar el archivo no rastreado.Respuestas:
Su archivo
.idea/workspace.xml
no está bajo el control de versión de git. No lo ha agregado todavía (verifique el estado de git / archivos sin seguimiento) o lo haya ignorado (usando .gitignore o .git / info / excluir archivos)Puede verificarlo usando el siguiente comando git, que enumera todos los archivos ignorados:
fuente
Funciona. Agregue un archivo nuevo haciendo clic con el botón derecho -> crear un archivo nuevo e inmediatamente elimínelo. El archivo iría a la lista de archivos sin seguimiento.
fuente
rm
un directorio o un archivo, él / ella no necesita agregarlo a git si aún no figura en el control de versiones de git.Sé que este no es el problema del OP, pero me encontré con el mismo error con una base completamente diferente, así que solo quería dejarlo aquí en caso de que alguien más tenga el mismo. Esto es específico de Windows, y supongo que no afecta a los usuarios de Linux.
Tenía un archivo de documento de LibreOffice, llámalo
final report.odt
. Más tarde cambié su caso aFinal Report.odt
. En Windows, esto ni siquiera cuenta como un cambio de nombre.final report.odt
,Final Report.odt
,FiNaL RePoRt.oDt
Son todos iguales. En Linux, estos son todos distintos.Cuando finalmente fui
git rm "Final Report.odt"
y obtuve el error "pathpec no coincide con ningún archivo". Solo cuando utilicé la carcasa original en el momento en que se agregó el archivogit rm "final report.odt"
, funcionó.Lección aprendida: para cambiar el caso, debería haber hecho:
Nuevamente, ese no era el problema para el OP aquí; y no afectaría a un usuario de Linux, como sus publicaciones muestran que claramente lo es. Solo lo incluyo para otros que pueden tener este problema en Windows Git y tropezar con esta pregunta.
fuente
Si su archivo
idea/workspace.xml
se agrega a .gitignore (o su carpeta principal), soloadd
manualmente para el control de versiones de git. También puedes agregarlo usando TortoiseGit. Después del siguiente impulso, verá que su problema está resuelto.fuente
rm
un directorio o un archivo, ¡no necesita agregarlo a git si aún no aparece en el control de versiones de git!En mi caso, había algo completamente extraño que no estoy seguro de cuál era la causa. Se confirmó una carpeta completa anteriormente. Pude verlo en Git, el Explorador de Windows y GitHub, pero se ignoraron los cambios que hice en la carpeta y los archivos que contiene. Usar
git check-ignore
para ver qué lo estaba ignorando e intentar eliminarlo nogit rm --cached
tuvo ningún impacto. Los cambios no se pudieron organizar.Lo arreglé por:
fuente
Personalmente me topé con un mensaje de error similar en este escenario:
Creé una carpeta que ha estado vacía , por lo que, naturalmente, mientras esté vacía, escribir
git add *
no tendrá en cuenta esta carpeta vacía. Entonces, cuando intenté ejecutargit rm -r *
o simplemente gitrm my_empty_folder/ -r,
, recibí ese mensaje de error.La solución es simplemente eliminarlo sin git:
rm -r my_empty_folder/
o crear un archivo de datos dentro de esta carpeta y luego agregarlo (git add my_no_long_empty_folder
)fuente
Tales pasos me ayudaron:
fuente
Mover temporalmente .gitignore a .gitignore.bck
fuente