Réponses:
Git suit probablement déjà le fichier.
Depuis les documents de gitignore :
Pour arrêter le suivi d'un fichier actuellement suivi, utilisez git rm --cached .
Utilisez ceci, en remplaçant [project]
et [username]
avec vos informations:
git rm --cached [project].xcodeproj/project.xcworkspace/xcuserdata/[username].xcuserdatad/UserInterfaceState.xcuserstate
git commit -m "Removed file that shouldn't be tracked"
Alternativement, vous pouvez utiliser l' -a
option git commit
qui ajoutera tous les fichiers qui ont été modifiés ou supprimés.
Une fois que vous avez supprimé le fichier de git, il respectera votre .gitignore
.
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.
git rm --cached {YourProjectFolderName}.xcodeproj/project.xcworkspace/xcuserdata/{yourUserName}.xcuserdatad/UserInterfaceState.xcuserstate
2.
git commit -m "Removed file that shouldn't be tracked"
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
git clean -f -d --dry-run
à- dire de voir ce qui se passe
git 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 nettoyez
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 gitignore
fichier composé d'ignorants utiles, dont l'un est le xcuserstate
. Vous pouvez prévisualiser le gitignore
fichier 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:
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
3. Assurez-vous que vous avez ignoré le git correct, puis validez le code :)
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:
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 cela
ajoutez cette ligne à votre gitignore
*.xcuserdata
Ç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.
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"