On ne peut pas ignorer UserInterfaceState.xcuserstate

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. Toutes les idées de pourquoi il en est ainsi?

251
demandé sur GarlicFries 2011-07-03 21:05:31

11 réponses

Git est probablement déjà en train de traquer le fichier.

De la gitignore docs :

pour arrêter de suivre un fichier qui est actuellement suivi, utilisez git rm --cache .

utilisez ceci, en remplaçant [project] et [username] par vos informations:

git rm --cached [project].xcodeproj/project.xcworkspace/xcuserdata/[username].xcuserdatad/UserInterfaceState.xcuserstate
git commit -m "Removed file that shouldn't be tracked"

vous pouvez également utiliser l'option -a pour git commit qui ajoutera tous les fichiers qui ont été modifiés ou supprimés.

une fois que vous aurez supprimé le fichier de git, il respectera votre .gitignore .

550
répondu matt 2017-04-30 18:11:35

dans le cas où le fichier ignoré a continué à apparaître dans la liste non suivie, vous pouvez utiliser git clean -f-D pour éclaircir les choses.

  1. git rm --cached Yourprojectfoldname .xcodeproj / projet.xcworkspace/xcuserdata/ nom d'utilisateur .xcuserdatad / UserInterfaceState.xcuserstate

  2. git commit-m "Removed file that should not be traced "

  3. git propre -f-d

45
répondu Xing 2015-07-19 18:54:10

la Réponse est grande, mais ici l'on va supprimer pour tous les utilisateurs si vous travaillez dans autre Mac (Maison et bureau) 151930920"

git rm --cache */UserInterfaceState.xcuserstate
git commit -m "Never see you again, UserInterfaceState"
19
répondu hardikdevios 2017-06-16 10:49:44

avait un ami me montrer ce site étonnant https://www.gitignore.io / . Entrez l'IDE de votre choix ou d'autres options et il générera automatiquement un fichier gitignore composé d'ignorants utiles, dont l'un est le xcuserstate . Vous pouvez prévisualiser le fichier gitignore avant de le télécharger.

15
répondu Josh Valdivieso 2015-03-24 20:42:03

dans le cas où le fichier continue à apparaître 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:

enter image description here

15
répondu Lukas Kalinski 2015-09-25 11:04:13

juste "git propre -f-d" a fonctionné pour moi!

10
répondu rilar 2014-07-14 21:26:17

Voici une très belle explication sur la façon de supprimer les fichiers en question de façon récursive de votre historique git: http://help.github.com/remove-sensitive-data /

très utile, car sinon les outils ont tendance à "pendre" tout en essayant de montrer la différence sur ces énormes fichiers qui n'auraient pas dû être vérifiés en premier lieu...

Voici ce que vous pouvez faire (en bref) pour se débarrasser des plus grandes choses:

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

très bien travaillé pour moi:)

4
répondu Zoran Simic 2011-08-16 05:07:43

pour moi, rien n'a fonctionné, mais ça

Ajoutez cette ligne à votre gitignore

*.xcuserdata
1
répondu Qadir Hussain 2018-06-05 10:14:12

pour xcode 8.3.3 je viens de vérifier essayé le code ci-dessus et observer que, maintenant dans ce cas, nous devons changer les commandes pour comme ceci

d'abord, vous pouvez 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 .dossier gitignore.

 git rm --cached [project].xcworkspace/xcuserdata/[username].xcuserdatad/UserInterfaceState.xcuserstate
 git commit -m "Removed file that shouldn't be tracked"
0
répondu Sachin Nautiyal 2017-08-31 10:24:57

voici quelques Démo & raccourcis si vous utilisez GitHub, les idées de base sont les mêmes.

1. Terminal ouvert comme celui-ci

enter image description here

2. Coller la commande ci-dessous au terminal suivi d'un espace et puis coller le chemin du .XCUSERSTATE fichier simplement comme ceci

git rm --cached enter image description here

3. Assurez - vous que vous avez le bon git ignorer et puis propager le code:)

enter image description here

0
répondu Fangming 2017-10-11 00:37:13

Cela fonctionne pour moi

  1. ouvrir le dossier qui contient le dossier de projet project.xcworkspace à partir du terminal.

  2. écrivez cette commande: git rm --cached *xcuserstate

ceci supprimera le fichier.

0
répondu Mohammed Ali Khaled 2018-10-02 13:46:45