Wie kann ich diese lästigen Mac OS X .DS_Store
Dateien aus einem Git-Repository?
Antworten
Zu viele Anzeigen?Schritt 1
Dadurch werden alle .DS_Store
Datei in einem Verzeichnis (einschließlich Unterverzeichnissen)
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
Schritt 2
Dies hinzufügen zu .gitignore
um zu verhindern, dass irgendwelche DS_Store-Dateien in der Wurzelverzeichnis y alle Unterverzeichnisse von Git zu gehen!
**/.DS_Store
Von der Git-Dokumente :
- Ein führendes "**" gefolgt von einem Schrägstrich bedeutet, dass die Suche in allen Verzeichnissen stattfindet. Zum Beispiel: "**/foo" passt auf die Datei oder das Verzeichnis "foo" überall, genau wie das Muster "foo". "**/foo/bar" passt auf die Datei oder das Verzeichnis "bar" überall, das direkt unter dem Verzeichnis "foo" liegt.
Falls Sie DS_Store-Dateien aus allen Ordnern und Unterordnern entfernen möchten:
Im Falle eines bereits bestätigten DS_Store:
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
Ignorieren Sie sie:
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
Löschen Sie sie mit git-rm
und fügen Sie dann .DS_Store zu .gitignore
um zu verhindern, dass sie wieder hinzugefügt werden. Sie können auch verwenden blueharvest um zu verhindern, dass sie alle zusammen erstellt werden
Bei mir hat sich folgendes bewährt. Behandelt nicht übereinstimmende Dateien und Dateien mit lokalen Änderungen. Als Referenz wurde dies auf einem Mac 10.7-System mit Git 1.7.4.4 durchgeführt.
Finden und entfernen:
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch -f
Ich ignoriere .DS_Store auch global in allen Repositories, indem ich eine globale core.excludesfile einstelle.
Erstellen Sie zunächst die Datei (falls noch nicht vorhanden):
touch ~/.gitignore
Fügen Sie dann die folgende Zeile ein und speichern Sie:
.DS_Store
Konfigurieren Sie nun git so, dass es die Datei global respektiert:
git config --global core.excludesfile ~/.gitignore