Ich verwende Git für Xcode 4-Projektversionskontrolle. Ich habe ProjectFolder.xcodeproj/project.xcworkspace/xcuserdata/myUserName.xcuserdatad/UserInterfaceState.xcuserstate
explizit .gitignore
hinzugefügt, aber Git wird es nicht ignorieren. Irgendwelche Ideen, warum das so ist?
Git verfolgt die Datei wahrscheinlich bereits.
Aus dem gitignore docs :
Verwenden Sie git rm --cached, um die Verfolgung einer Datei zu stoppen, die gerade verfolgt wird.
Verwenden Sie dies und ersetzen Sie [project]
und [username]
durch Ihre Informationen:
git rm --cached [project].xcodeproj/project.xcworkspace/xcuserdata/[username].xcuserdatad/UserInterfaceState.xcuserstate
git commit -m "Removed file that shouldn't be tracked"
Alternativ können Sie die Option -a
für git commit
verwenden, um alle Dateien hinzuzufügen, die geändert oder gelöscht wurden.
Sobald Sie die Datei aus git entfernt haben, wird Ihr .gitignore
berücksichtigt.
Falls die ignorierte Datei immer wieder in der Liste der nicht protokollierten Dateien angezeigt wird, können Siegit clean -f -d Verwenden, um die Daten zu löschen.
git rm --cachedYourProjectFolderName. xcodeproj/project.xcworkspace/xcuserdata /yourUserName. xcuserdatad/UserInterfaceState.xcuserstate
git commit -m "Datei wurde entfernt, die nicht verfolgt werden sollte"
git clean -f -d
Alle Antworten sind großartig, aber hier wird der für jeden Benutzer entfernt, wenn Sie in einem anderen Mac arbeiten (Heim und Büro)
git rm --cache */UserInterfaceState.xcuserstate
git commit -m "Never see you again, UserInterfaceState"
Hatte ein Freund mir diese erstaunliche Seite gezeigt https://www.gitignore.io/ . Geben Sie die IDE Ihrer Wahl oder andere Optionen ein, und es wird automatisch eine gitignore
-Datei generiert, die aus nützlichen Ignorierungen besteht, von denen eine xcuserstate
ist. Sie können vor dem Download eine Vorschau der gitignore
-Datei anzeigen.
Gerade "git clean -f -d" arbeitete für mich!
Hier ist eine sehr schöne Erklärung, wie Sie die betreffenden Dateien rekursiv aus Ihrem Git-Verlauf entfernen: http://help.github.com/remove-sensitive-data/
Sehr nützlich, da Werkzeuge sonst dazu neigen, den Unterschied zu den riesigen Dateien zu zeigen, die eigentlich gar nicht geprüft werden sollten ...
Was Sie (kurz gesagt) tun können, um die größten Dinge loszuwerden:
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
Sehr schön für mich gearbeitet :)
Für mich hat nichts funktioniert, aber das hier
fügen Sie diese Zeile Ihrem Gititore hinzu
*.xcuserdata
Wenn Sie GitHub verwenden, sind hier einige Demo- und Shortcuts. Die Grundideen sind die gleichen.
1. Terminal so öffnen
2. Fügen Sie den folgenden Befehl in das Terminal gefolgt von einem Leerzeichen ein und fügen Sie den Pfad der .xcuserstate-Datei einfach so ein.
3. Vergewissere dich, dass du den richtigen git ignorierst und dann den Code festschreibe :)
Das funktioniert für mich
Öffnen Sie den Ordner, der die Projektdatei project.xcworkspace
enthält, vom Terminal aus.
Schreiben Sie diesen Befehl: git rm --cached *xcuserstate
Dadurch wird die Datei entfernt.
Für xcode 8.3.3 habe ich gerade den obigen Code ausprobiert und beachte, dass jetzt in diesem Fall die Befehle geändert werden müssen, damit dies gefällt
zuerst können Sie eine .gitignore-Datei erstellen, indem Sie verwenden
touch .gitignore
danach können Sie die gesamte userInterface-Datei löschen, indem Sie diesen Befehl verwenden. Mit diesem Befehl wird Ihre .gitignore-Datei respektiert.
git rm --cached [project].xcworkspace/xcuserdata/[username].xcuserdatad/UserInterfaceState.xcuserstate
git commit -m "Removed file that shouldn't be tracked"