web-dev-qa-db-fra.com

Xcode - erreur: pathspec '...' ne correspond à aucun fichier connu de git

J'utilise un dépôt Git local. Lorsque j'essaie de valider les modifications apportées au fichier de modèle de données principal (.xcdatamodel), je reçois le message suivant:

error: pathspec '.../DataModel.xcdatamodeld/DataModel.xcdatamodel/contents' did not match any file(s) known to git.

Comment résoudre ce problème et valider le modèle comme je le fais avec n'importe quel autre fichier?

60
Abdalrahman Shatou

La réponse choisie est trop spécifique à sa propre question et ne donne aucune idée de la cause réelle. Le problème est en effet, comme mentionné avant la modification de la casse d'un nom de fichier. Pour moi personnellement, c'est à cause de mon Macbook/OSX. Apparemment, Windows a la même "chose".

Cause: git n'est pas capable de reconnaître un changement de 'nom de fichier' en 'Nom de fichier'.

Voici une liste de solutions pour ceux qui tombent sur cette question. Tous doivent être exécutés à la racine du projet:

Le correctif permanent qui fonctionnera sur les projets actuels et futurs

Changer le paramètre de cas Git. Le fichier doit être validé ensuite

git config core.ignorecase false --global

Le projet ne résout que

git config core.ignorecase false

Le vient de me donner une ligne de code afin que je puisse passer à autre chose - crédit à Bruce

git commit -a -m "pathspec did not match any file(s) known to git fix"

Le je suis payé à l'heure fixe

Delete the file. Commit. Push. Add the file again. Commit. Push.
111
Stan Smulders

Ce n'était probablement pas votre problème, mais cette page a un rang élevé sur Google pour l'erreur:

Git n'aime pas renommer les sources où la source et la destination ne diffèrent que par cas. (Spécifique à Windows) Voir Comment puis-je valider les modifications de nom de fichier sensibles à la casse uniquement dans Git? pour les solutions.

10
user3757614

Ce n'est pas une bonne façon de résoudre le problème, mais c'est une solution de contournement qui peut aider les autres ... Faites ceci dans votre terminal:

git commit -m "<message>" <project dir>

Remplacez-le par votre message et par le répertoire de votre projet.

8
tf.alves

Ceci est similaire à la réponse de tf.alves, mais normalement je fais un

git commit -a -m "comment"

J'ai constaté que si j'oublie les paramètres -a et -m, le message d'erreur: pathspec mentionné ci-dessus apparaît.

7
Bruce Calvert

J'ai rencontré le même problème après avoir renommé un fichier de storyboard. Les étapes suivantes l'ont corrigé pour moi -

  1. Nettoyer (Maj + Commande + K)
  2. Construire (Commande + B)
  3. Commettre

Pas sûr, mais je pense que git tenait peut-être une référence à l'ancien nom de fichier et nettoyait le dossier de construction puis la construction corrigeait cela.

J'espère que ça aide!

4
Ahsas Sharma

J'ai supprimé le fichier .xcdatamodel, validé, ajouté et validé à nouveau. Pas propre, mais a travaillé.

4
Vladimir Shutyuk

J'ai eu la même erreur en utilisant xcode 9.1. Je l'ai résolu par commit manuel depuis le terminal. Les étapes sont les suivantes

  1. déplacez vers votre dossier/répertoire de projet
  2. $ git status - vous apprendrez à connaître les modifications apportées à votre projet
  3. $ git add.
  4. $ git commit -m "votre message"
  5. $ git Push Origin master

Une fois que vous avez validé manuellement toutes les modifications depuis le terminal, vous pouvez utiliser le contrôle de source dans xcode.

3
Anand Yadav

J'ai eu cette erreur dans Xcode, je viens de redémarrer Xcode, puis de nouveau validé.

3
Skyborg

Je fixe comme ça:

  1. Allez dans le répertoire de votre projet avec le terminal (console)
  2. Exécutez la commande: git status // cette montre les fichiers non suivis
  3. Ajoutez tous les fichiers non suivis avec cette commande: git add -A
  4. Vous pouvez valider avec le contrôle de code source xcode, puis Push.
2
xhinoda

Cela a résolu le problème pour moi. Supprimez le fichier de votre projet. Je l'ai traîné dans un autre dossier. J'ai ensuite enlevé la référence, nettoyé le projet et ensuite construit le projet.

Puis engagez-vous et appuyez sur votre git. Ajoutez ensuite le fichier et validez à nouveau.

0
Sigex

J'ai résolu le problème simplement en fermant XCODE et en l'ouvrant à nouveau. Je sais que ce n'est pas une solution intéressante, mais cela a fonctionné sans aucune modification des fichiers de ma part.

0
Oleg991

J'ai eu cette erreur dans Xcode après avoir changé l'extension de l'un de mes fichiers (.txt a été remplacé par .json). Je l'ai résolu en faisant un clic droit sur le fichier, en sélectionnant Source Control -> Commit Selected Files..., et ne commettant que ce fichier. Après cela, j'ai pu retourner à Source Control -> Commit (de la barre de menu), et le reste des fichiers ont été validés avec succès.

0
Stewart Macdonald

J'ai résolu ce problème en supprimant le référentiel de projet local et en le recréant.

supprimez votre référentiel local (Xcode) et en ligne (Github, ...), créez un nouveau référentiel et validez-le à nouveau.

pour supprimer le référentiel git de votre projet:

1- ouvrez le terminal et collez cette commande pour activer l'affichage du fichier caché dans le Finder

defaults write com.Apple.Finder AppleShowAllFiles TRUE
killall Finder

2- ouvrir le dossier de projet et supprimer le dossier .git

3- redémarrer Xcode

maintenant, créez un nouveau dépôt git et validez le projet

0
Hamid Reza Ansari