1790 Stimmen

Wie kann ich .DS_Store-Dateien aus einem Git-Repository entfernen?

Wie kann ich diese lästigen Mac OS X .DS_Store Dateien aus einem Git-Repository?

19voto

Sunny Punkte 751

Verwenden Sie diesen Befehl, um die vorhandenen Dateien zu entfernen:

find . -name '*.DS_Store' -type f -delete

Dann fügen Sie .DS_Store à .gitignore

13voto

stevec Punkte 25346

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.

13voto

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

10voto

Nathan Punkte 11264

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

9voto

jordantbro Punkte 81

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

CodeJaeger.com

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.

Powered by:

X