impossible de supprimer un fichier qui existe réellement - fatal: pathspec ... ne correspond à aucun des fichiers
impossible de supprimer un fichier qui existe réellement - fatal: pathspec ... ne correspond à aucun des fichiers
J'ai un fichier sous git de contrôle qui ne sera pas supprimé. Le défaut de la commande est:
$ git rm .idea/workspace.xml
fatal: pathspec '.idea/workspace.xml' did not match any files
Ci-dessous je liste le contenu du répertoire, branches, etc. Jusqu'à présent, j'ai essayé de rm à l'intérieur du répertoire, et d'échapper juste au cas où il y a de drôles de personnages, et je suis vraiment perplexe. J'ai cherché sur le web et AINSI, mais ne pouvais pas trouver ce particulier. Merci à l'avance!
$ 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
Mise à JOUR: les Réponses de Nevik et Boris a beaucoup aidé. J'ai réalisé que j'étais perturbée par un certain nombre de choses en cours, dont certains ont été exacerbées par IntelliJ IDEA (un outil de manière générale, j'adore, d'ailleurs). Tout d'abord, le "fatal: pathspec" message de git rm est à la fois inutile et trompeuse (dans cette la vanille de l'opinion de l'utilisateur). Deuxièmement, j'ai eu le fichier .gitignore, mais l'avait retiré avant de poser ma question. Cependant, il a également été inclus dans l'IDÉE de Fichiers Ignorés fonction indépendamment de git, et a montré en tant que tel dans le projet de la visionneuse (au lieu de sans traces, comme git status a montré). Enfin, j'ai eu l'IDÉE de course alors que j'étais à l'expérimentation, et on dirait qu'il a été de recréer le fichier immédiatement après mon rm. Donc, mon résumé est que si je suis confus Git problème, assurez-vous de quitter IDÉE et le travail soley dans la ligne de commande (et gitk) lors du débogage. Et que DONC, les utilisateurs sont génial. Merci encore!
- avez-vous essayé d'enlever simplement le fichier avec
rm
au lieu degit rm
? - Oui, j'avais pensé à essayer ça, merci, mais il semble que IntelliJ IDEA (que j'ai eu en cours d'exécution) réanimé après chaque suppression. Doh!
- Je travaille avec Eclipse et Attlassian SourceTree... votre question m'aider à résoudre ce problème. Merci !
- Vous pouvez utiliser
git clean -f .idea/workspace.xml
pour supprimer le sans traces de fichier.
Vous devez vous connecter pour publier un commentaire.
Votre fichier
.idea/workspace.xml
n'est pas sous contrôle de version git. Vous n'avez soit pas ajouté encore (vérifier git status/sans traces de fichiers) ou ignoré (à l'aide .gitignore ou .git/info/exclure des fichiers)Vous pouvez le vérifier en suivant le plan de commande git, qui répertorie tous les fichiers ignorés:
Il fonctionne. Vous ajoutez un nouveau fichier à l'aide d'un clic droit -> créer un nouveau fichier, et supprimez-le immédiatement après. Le fichier serait aller à la non chaînée liste des fichiers.
rm
un répertoire ou un fichier, il/elle n'a pas besoin de l'ajouter à git si ce n'est pas déjà répertorié sous contrôle de version git.Je sais que ce n'est pas le cas des OP problème, mais j'ai couru dans la même erreur avec une tout autre base, donc je voulais juste laisser ça ici au cas où quelqu'un d'autre a le même. C'est spécifique à Windows, et je suppose n'affecte pas les utilisateurs de Linux.
J'ai eu un LibreOffice fichier doc, appeler
final report.odt
. Plus tard, j'ai changé son cas àFinal Report.odt
. Dans Windows, ceci n'est même pas compter comme un changement de nom.final report.odt
,Final Report.odt
,FiNaL RePoRt.oDt
sont tous les mêmes. Sous Linux, ces sont tous distincts.Quand je suis allé à
git rm "Final Report.odt"
et a obtenu le "pathspec ne correspond à aucun des fichiers d'erreur". Seulement lorsque j'utilise la boîte d'origine au moment où le fichier a été ajouté --git rm "final report.odt"
, est-ce que cela fonctionne.Leçon apprise: pour changer le cas, j'aurais plutôt fait:
Encore une fois, ce n'était pas le problème pour les OP d'ici; ne pas affecter un utilisateur de Linux, comme ses postes de montre de toute évidence, il est. Je suis juste, y compris pour les autres qui ont ce problème dans Windows git et de tomber sur cette question.
Si votre fichier
idea/workspace.xml
est ajouté .gitignore (ou son dossier parent) justeadd
manuellement de contrôle de version git. Vous pouvez aussi les ajouter à l'aide TortoiseGit. Après la prochaine poussée, vous verrez que votre problème est résolu.rm
un répertoire ou un fichier, il/elle n'a pas besoin de l'ajouter à git si ce n'est pas déjà répertorié sous contrôle de version git!Dans mon exemple, il y avait quelque chose de complètement bizarre que je ne suis pas sûr de ce que la cause a été. Un dossier complet a été commis précédemment. J'ai pu le voir dans Git, l'Explorateur Windows, et GitHub, mais toutes les modifications que j'ai apportées au dossier lui-même et les fichiers qu'il contient ont été ignorés. À l'aide de
git check-ignore
pour voir ce qui était de l'ignorer, et d'essayer de l'enlever à l'aidegit rm --cached
n'a eu aucun impact. Les modifications n'ont pas pu être mis en scène.J'ai corrigé par:
Personnellement, je suis tombé sur un message d'erreur similaire dans ce scénario:
J'ai créé un dossier qui a été vide, alors, naturellement, tant qu'il est vide, tapant
git add *
ne serez pas prendre ce dossier vide en considération. Alors, quand j'ai essayé d'exécutergit rm -r *
ou tout simplement gitrm my_empty_folder/-r,
j'ai eu ce message d'erreur.La solution est tout simplement de l'enlever sans git:
rm -r my_empty_folder/
ou créer un fichier de données à l'intérieur de ce dossier, puis de l'ajouter (git add my_no_long_empty_folder
)Déplacer temporairement .gitignore pour .gitignore.bck