Ich habe die .DS_Store-Datei zur .gitignore-Datei hinzugefügt, aber anscheinend ignoriert sie nur .DS_Store im Stammverzeichnis und nicht in jedem Ordner und Unterordner.
Wie kann ich das beheben?
Ich habe die .DS_Store-Datei zur .gitignore-Datei hinzugefügt, aber anscheinend ignoriert sie nur .DS_Store im Stammverzeichnis und nicht in jedem Ordner und Unterordner.
Wie kann ich das beheben?
Ich denke, das Problem, das Sie haben, ist, dass Sie in einem früheren Commit versehentlich .DS_Store
-Dateien zum Repository hinzugefügt haben. Natürlich wird eine Datei, die in Ihrem Repository verfolgt wird, weiterhin verfolgt, auch wenn sie mit einem Eintrag in einer entsprechenden .gitignore-Datei übereinstimmt.
Sie müssen die .DS_Store
-Dateien manuell aus Ihrem Repository entfernen. Sie können verwenden
git rm --cached .DS_Store
Nach dem Entfernen sollte git es ignorieren. Sie sollten nur die folgende Zeile in Ihrer root .gitignore
-Datei benötigen: .DS_Store
. Vergessen Sie den Punkt nicht!
git rm --cached .DS_Store
entfernt nur .DS_Store
aus dem aktuellen Verzeichnis. Sie können verwenden
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
um alle .DS_Stores
aus dem Repository zu entfernen.
Filzstift: Da Sie wahrscheinlich nie .DS_Store
-Dateien einschließen möchten, erstellen Sie eine globale Regel. Erstellen Sie zunächst eine globale .gitignore
-Datei irgendwo, z. B.
echo .DS_Store >> ~/.gitignore_global
Sagen Sie nun git, dass es für alle Repositories verwendet werden soll:
git config --global core.excludesfile ~/.gitignore_global
Diese Seite hat mir geholfen, Ihre Frage zu beantworten.
Fügen Sie `/.DS_Storein
.gitignore` für das Unterverzeichnis hinzu**
Wenn .DS_Store
bereits übernommen wurde:
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
Um sie im gesamten Repository zu ignorieren: (manchmal heißt es ._.DS_Store
)
echo ".DS_Store" >> ~/.gitignore_global
echo "._.DS_Store" >> ~/.gitignore_global
echo "**/.DS_Store" >> ~/.gitignore_global
echo "**/._.DS_Store" >> ~/.gitignore_global
git config --global core.excludesfile ~/.gitignore_global
Wenn .DS_Store nie zu Ihrem Git-Repository hinzugefügt wurde, fügen Sie es einfach Ihrer .gitignore-Datei hinzu.
Wenn Sie keine haben, erstellen Sie eine Datei namens
.gitignore
Im Stammverzeichnis Ihrer App und schreiben Sie einfach
**/.DS_Store
Darin. Dies wird verhindern, dass die .DS_Store-Datei in Ihr Git gelangt.
Aber wenn sie bereits vorhanden ist, geben Sie in Ihrem Terminal ein:
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
dann committen und pushen Sie die Änderungen, um die .DS_Store von Ihrem Remote-Repository zu entfernen:
git commit -m "Entferne .DS_Store überall"
git push origin master
Und fügen Sie nun .DS_Store zu Ihrer .gitignore-Datei hinzu und committen und pushen Sie erneut mit den 2 letzten Code-Schnipseln (git commit..., git push...)
Platzieren Sie dies einfach in einer neuen Zeile in .gitignore
**/.DS_Store
- Ein führendes "**" gefolgt von einem Schrägstrich bedeutet Treffer in allen Verzeichnissen. Zum Beispiel passt "**/foo" auf Datei oder Verzeichnis "foo" überall, genauso wie das Muster "foo". "**/foo/bar" passt auf Datei oder Verzeichnis "bar" überall, das direkt unter dem Verzeichnis "foo" liegt.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.