it-swarm.com.de

UserInterfaceState.xcuserstate kann nicht ignoriert werden

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?

262
GarlicFries

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.

580
matt

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. 

  1. git rm --cachedYourProjectFolderName. xcodeproj/project.xcworkspace/xcuserdata /yourUserName. xcuserdatad/UserInterfaceState.xcuserstate

  2. git commit -m "Datei wurde entfernt, die nicht verfolgt werden sollte"

  3. git clean -f -d

46
Xing

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"
24
hardikdevios

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.

16
Josh Valdivieso

Falls die Datei auch nach dem Ausführen aller hier genannten Elemente weiterhin angezeigt wird, stellen Sie sicher, dass dieses Kontrollkästchen in den Xcode-Einstellungen deaktiviert ist:

 enter image description here

15
Lukas Kalinski

Gerade "git clean -f -d" arbeitete für mich!

12
rilar

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 :)

4
Zoran Simic

Für mich hat nichts funktioniert, aber das hier

fügen Sie diese Zeile Ihrem Gititore hinzu

*.xcuserdata
2
Qadir Hussain

Wenn Sie GitHub verwenden, sind hier einige Demo- und Shortcuts. Die Grundideen sind die gleichen.

1. Terminal so öffnen

enter image description here

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.

git rm --cachedenter image description here

3. Vergewissere dich, dass du den richtigen git ignorierst und dann den Code festschreibe :)

enter image description here

1
Fangming

Das funktioniert für mich 

  1. Öffnen Sie den Ordner, der die Projektdatei project.xcworkspace enthält, vom Terminal aus.

  2. Schreiben Sie diesen Befehl: git rm --cached *xcuserstate

Dadurch wird die Datei entfernt.

0

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"
0
Sachin Nautiyal