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?
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
.
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.
-
git rm --cached Yourprojectfoldname .xcodeproj / projet.xcworkspace/xcuserdata/ nom d'utilisateur .xcuserdatad / UserInterfaceState.xcuserstate
-
git commit-m "Removed file that should not be traced "
-
git propre -f-d
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"
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.
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:
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:)
pour moi, rien n'a fonctionné, mais ça
Ajoutez cette ligne à votre gitignore
*.xcuserdata
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"
voici quelques Démo & raccourcis si vous utilisez GitHub, les idées de base sont les mêmes.
1. Terminal ouvert comme celui-ci
2. Coller la commande ci-dessous au terminal suivi d'un espace et puis coller le chemin du .XCUSERSTATE fichier simplement comme ceci
3. Assurez - vous que vous avez le bon git ignorer et puis propager le code:)
Cela fonctionne pour moi
-
ouvrir le dossier qui contient le dossier de projet
project.xcworkspace
à partir du terminal. -
écrivez cette commande:
git rm --cached *xcuserstate
ceci supprimera le fichier.