J'utilise Git pour le contrôle de version du projet Xcode 4. J'ai explicitement ajouté ProjectFolder.xcodeproj/project.xcworkspace/xcuserdata/myUserName.xcuserdatad/UserInterfaceState.xcuserstateà .gitignore, mais Git ne l'ignorera pas. Des idées pourquoi il en est ainsi?
J'ai ce problème mais quand j'essaie de supprimer le fichier xcuserstate, il dit «ne correspond à aucun fichier». Que se passe-t-il?
Rob Caraway
J'ai le même problème que @RobCaraway
MaxGabriel
24
Cela m'a aidé à: 1) quitter xcode; 2) allez dans le répertoire du projet et faites un "ls -la" depuis l'application du terminal pour vous assurer de voir les fichiers .git et .gitignore; 3) remplacez "ProjectFolder" dans l'exemple ci-dessus par le nom de votre projet; 4) faire les deux commandes git que Matt montre; 5) Relancez XCode et effectuez une validation et vérifiez que le fichier xcuserstate n'est plus répertorié.
Brainware
1
Une idée de comment faire l'équivalent en svn? Je reçois le même problème, dans lequel svn
n'ignore
Merci @Brainware !! Cela a finalement fonctionné grâce à votre suggestion. Je pense que la fermeture préalable de Xcode est très importante.
Jay Versluis
52
Dans le cas où le fichier ignoré apparaît toujours dans la liste non suivie, vous pouvez utiliser git clean -f -d
pour effacer les choses.
github vous donne maintenant un fichier .gitignore par défaut qui inclut ce fichier entre autres mais vous devez toujours suivre vos étapes. un peu ennuyeux
cspam
3
Merci les hommes, git clean -f -d vient d'être supprimé. xcodeproj et autres fichiers de mon projet ...
Jeremy Luisetti
1
Il est fortement conseillé d'utiliser l'indicateur --dry-run avant d'exécuter git clean, c'est- git clean -f -d --dry-run à- dire de voir ce qui se passe
zero0cool
Que fait git clean -f -d-il?
allenlinli
N'utilisez pas le git clean -f -dsi vous avez des modifications de fichiers non validées! Je l'ai utilisé et il a supprimé mes fichiers fraîchement créés avec du contenu déjà créé! :) Alors commencez par valider puis nettoyez
kalafun
44
Toutes les réponses sont excellentes, mais voici celle qui sera supprimée pour chaque utilisateur si vous travaillez sur différents Mac (domicile et bureau)
git rm --cache */UserInterfaceState.xcuserstate
git commit -m "Never see you again, UserInterfaceState"
Un ami m'a montré ce site étonnant https://www.gitignore.io/ . Entrez l'IDE de votre choix ou d'autres options et il générera automatiquement un gitignorefichier composé d'ignorants utiles, dont l'un est le xcuserstate. Vous pouvez prévisualiser le gitignorefichier avant de le télécharger.
Dans le cas où le fichier continue de s'afficher même après avoir fait tout ce qui est mentionné ici, assurez-vous que cette case à cocher dans les paramètres Xcode n'est pas cochée:
Très utile, car sinon les outils ont tendance à "se bloquer" tout en essayant de montrer la différence sur ces fichiers énormes qui n'auraient pas dû être vérifiés en premier lieu ...
Voici ce que vous pouvez faire (en bref) pour vous débarrasser des plus gros trucs:
cd YourProject
git filter-branch --index-filter 'git rm --cached --ignore-unmatch -r YourProject.xcodeproj/project.xcworkspace' HEAD
# see what you want to do with your remote here...# you can: git push origin master --force# or you can delete it and push a fresh new one from your cleaned-up local...
rm -rf .git/refs/original
git gc --prune=now
git gc --aggressive --prune=now
Pour xcode 8.3.3, je viens de vérifier le code ci-dessus et je constate que maintenant, dans ce cas, nous devons changer les commandes comme ceci
vous pouvez d'abord créer un fichier .gitignore en utilisant
touch .gitignore
après cela, vous pouvez supprimer tout le fichier userInterface en utilisant cette commande et en utilisant cette commande il respectera votre fichier .gitignore.
git rm --cached [project].xcworkspace/xcuserdata/[username].xcuserdatad/UserInterfaceState.xcuserstate
git commit -m "Removed file that shouldn't be tracked"
Dans le cas où le fichier ignoré apparaît toujours dans la liste non suivie, vous pouvez utiliser
git clean -f -d
pour effacer les choses.1.
2.
3. AVERTISSEMENT essayez d'abord
git clean -f -d --dry-run
, sinon vous risquez de perdre des modifications non validées.Ensuite:
git clean -f -d
la source
git clean -f -d --dry-run
à- dire de voir ce qui se passegit clean -f -d
-il?git clean -f -d
si vous avez des modifications de fichiers non validées! Je l'ai utilisé et il a supprimé mes fichiers fraîchement créés avec du contenu déjà créé! :) Alors commencez par valider puis nettoyezToutes les réponses sont excellentes, mais voici celle qui sera supprimée pour chaque utilisateur si vous travaillez sur différents Mac (domicile et bureau)
la source
Un ami m'a montré ce site étonnant https://www.gitignore.io/ . Entrez l'IDE de votre choix ou d'autres options et il générera automatiquement un
gitignore
fichier composé d'ignorants utiles, dont l'un est lexcuserstate
. Vous pouvez prévisualiser legitignore
fichier avant de le télécharger.la source
Dans le cas où le fichier continue de s'afficher même après avoir fait tout ce qui est mentionné ici, assurez-vous que cette case à cocher dans les paramètres Xcode n'est pas cochée:
la source
Juste "git clean -f -d" a fonctionné pour moi!
la source
Voici quelques démos et raccourcis si vous utilisez GitHub, les idées de base sont les mêmes.
1. Ouvrez un terminal comme celui-ci
2. Collez la commande ci-dessous dans le terminal, suivie d'un espace, puis collez le chemin du fichier .xcuserstate simplement comme ceci
git rm --cached
3. Assurez-vous que vous avez ignoré le git correct, puis validez le code :)
la source
Voici une très belle explication sur la façon de supprimer récursivement les fichiers en question de votre historique git: http://help.github.com/remove-sensitive-data/
Très utile, car sinon les outils ont tendance à "se bloquer" tout en essayant de montrer la différence sur ces fichiers énormes qui n'auraient pas dû être vérifiés en premier lieu ...
Voici ce que vous pouvez faire (en bref) pour vous débarrasser des plus gros trucs:
A très bien fonctionné pour moi :)
la source
Pour moi, rien n'a fonctionné, mais cela
ajoutez cette ligne à votre gitignore
la source
Ça marche pour moi
Ouvrez le dossier qui contient le fichier
project.xcworkspace
de projet depuis le terminal.Écrivez cette commande:
git rm --cached *xcuserstate
Cela supprimera le fichier.
la source
Pour xcode 8.3.3, je viens de vérifier le code ci-dessus et je constate que maintenant, dans ce cas, nous devons changer les commandes comme ceci
vous pouvez d'abord créer un fichier .gitignore en utilisant
après cela, vous pouvez supprimer tout le fichier userInterface en utilisant cette commande et en utilisant cette commande il respectera votre fichier .gitignore.
la source
Je pense qu'il vaudrait mieux écrire comme ça.
git rm --cache * / /UserInterfaceState.xcuserstate**
la source