J'utilise Git pour le contrôle de version de 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 c'est ainsi?
Git est probablement déjà en train de suivre le fichier.
À partir de gitignore docs :
Pour arrêter de suivre un fichier actuellement suivi, utilisez git rm --cached.
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 modifiés ou supprimés.
Une fois que vous avez supprimé le fichier de git, il respectera votre .gitignore
.
Au cas où le fichier ignoré continuerait à apparaître dans la liste non suivie, vous pouvez utilisergit clean -f -d Pour clarifier les choses.
git rm --cachedYourProjectFolderName. xcodeproj/project.xcworkspace/xcuserdata /yourUserName. xcuserdatad/UserInterfaceState.xcuserstate
git commit -m "Fichier supprimé qui ne devrait pas être suivi"
git clean -f -d
All Answer is great, mais voici celui qui sera supprimé pour chaque utilisateur si vous travaillez sur un Mac différent (à la maison et au bureau)
git rm --cache */UserInterfaceState.xcuserstate
git commit -m "Never see you again, UserInterfaceState"
Avait un ami me montrer ce site incroyable https://www.gitignore.io/ . Entrez le IDE de votre choix ou d'autres options et il générera automatiquement un fichier gitignore
composé d'ignorances utiles, dont l'un est la xcuserstate
. Vous pouvez prévisualiser le fichier gitignore
avant le téléchargement.
Juste "git clean -f -d" a travaillé pour moi!
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» en essayant de montrer le diff 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 vous débarrasser des éléments les plus volumineux:
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
A très bien fonctionné pour moi :)
Pour moi rien n'a fonctionné, mais ceci
ajoutez cette ligne à votre gitignore
*.xcuserdata
Voici quelques démos et raccourcis si vous utilisez GitHub, les idées de base sont les mêmes.
1. Ouvrez le terminal comme ceci
2. Collez la commande ci-dessous dans le terminal, suivie d'un espace, puis collez le chemin du fichier .xcuserstate simplement comme ceci
3. Assurez-vous que vous avez le bon git ignore et validez le code :)
Ça marche pour moi
Ouvrez le dossier contenant le fichier de projet project.xcworkspace
à partir du terminal.
Écrivez cette commande: git rm --cached *xcuserstate
Cela supprimera le fichier.
Pour xcode 8.3.3 je viens de vérifier essayé le code ci-dessus et observe que, maintenant dans ce casewe doivent changer les commandes pour aimer ceci
d’abord, vous pouvez créer un fichier .gitignore en utilisant
touch .gitignore
après cela, vous pouvez supprimer tout le fichier userInterface à l'aide de cette commande. Cette commande respectera votre fichier .gitignore.
git rm --cached [project].xcworkspace/xcuserdata/[username].xcuserdatad/UserInterfaceState.xcuserstate
git commit -m "Removed file that shouldn't be tracked"