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?

3451voto

benzado Punkte 78100

Entfernen Sie vorhandene Dateien aus dem Repository:

find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch

Fügen Sie diese Zeile hinzu:

.DS_Store

zur Datei .gitignore die sich auf der obersten Ebene Ihres Repositorys befindet (oder erstellen Sie die Datei, wenn sie dort noch nicht vorhanden ist). Sie können dies einfach mit diesem Befehl im obersten Verzeichnis tun:

echo .DS_Store >> .gitignore

Übertragen Sie dann die Datei an das Projektarchiv:

git add .gitignore
git commit -m '.DS_Store banished!'

291voto

Turadg Punkte 7202

Kombination der Antworten von benzado und webmat, Aktualisierung mit git rm , keine Fehlschläge bei gefundenen Dateien, die nicht im Projektarchiv sind, und die generische Einfügemöglichkeit für jeden Benutzer:

# remove any existing files from the repo, skipping over ones not in repo
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
# specify a global exclusion list
git config --global core.excludesfile ~/.gitignore
# adding .DS_Store to that list
echo .DS_Store >> ~/.gitignore

224voto

Nerve Punkte 5865

Die beste Lösung für dieses Problem besteht darin, diese Dateien global in allen Git-Repos auf Ihrem System zu ignorieren. Dies kann durch die Erstellung einer globalen Gitignore-Datei wie folgt geschehen:

vi ~/.gitignore_global

Hinzufügen von Regeln zum Ignorieren von Dateien wie:

# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so

# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip

# Logs and databases #
######################
*.log
*.sql
*.sqlite

# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

Fügen Sie nun diese Datei zu Ihrer globalen Git-Konfiguration hinzu:

git config --global core.excludesfile ~/.gitignore_global

Edit :

Icons wurden entfernt, da sie möglicherweise als Anwendungs-Assets übertragen werden müssen.

68voto

webmat Punkte 53996

In manchen Situationen kann es auch sinnvoll sein, einige Dateien global zu ignorieren. Für mich ist .DS_Store eine dieser Dateien. So geht's:

git config --global core.excludesfile /Users/mat/.gitignore

(Oder eine beliebige Datei Ihrer Wahl)

Dann bearbeiten Sie die Datei genau wie die .gitignore-Datei eines Repos. Beachten Sie, dass Sie meiner Meinung nach einen absoluten Pfad verwenden müssen.

57voto

RajVimalC Punkte 349

Manchmal sind .DS_Store-Dateien im entfernten Repository vorhanden, aber in Ihren lokalen Projektordnern nicht sichtbar. Um dies zu beheben, müssen wir alle zwischengespeicherten Dateien entfernen und erneut hinzufügen.

Schritt 1: Fügen Sie dies der Datei .gitignore hinzu.

# Ignore Mac DS_Store files
.DS_Store
**/.DS_Store

Schritt 2: Entfernen Sie die zwischengespeicherten Dateien und fügen Sie sie mit diesen Befehlen erneut hinzu.

git rm -r --cached .
git add .
git commit -am "Removed git ignored files"
git push -f origin master

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