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


Wie kann ich das lästige Mac OS X entfernen? .DS_Store Dateien aus einem Git-Repository?


939
2017-09-20 09:15


Ursprung


Antworten:


Entfernen Sie vorhandene Dateien aus dem Repository:

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

Fügen Sie die Zeile hinzu

.DS_Store

zu der Datei .gitignore, die auf der obersten Ebene Ihres Repositorys gefunden werden kann (oder erstellt werden, wenn es nicht bereits vorhanden ist). Dies können Sie leicht mit diesem Befehl im obersten Verzeichnis tun

echo .DS_Store >> .gitignore

Dann

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

1815
2017-09-20 11:18



Kombinieren Sie die Antworten von benzado und webmat und aktualisieren Sie mit git rmNicht fehlschlagen, wenn Dateien gefunden werden, die nicht in Repo sind, und sie können für jeden Benutzer generisch eingefügt werden:

# 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

211
2017-07-14 23:42



Die beste Lösung, um dieses Problem anzugehen, besteht darin, diese Dateien global von allen Git-Repos auf Ihrem System zu ignorieren. Dies kann durch Erstellen einer globalen Gitignore-Datei wie:

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 diese Datei nun Ihrer globalen Git-Konfiguration hinzu:

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

Bearbeiten:

Entfernte Symbole, da sie möglicherweise als Anwendungsressourcen festgeschrieben werden müssen.


118
2017-07-13 08:03



In einigen Situationen möchten Sie vielleicht auch einige Dateien global ignorieren. Für mich ist .DS_Store einer von ihnen. Hier ist wie:

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

(Oder irgendeine Datei Ihrer Wahl)

Bearbeiten Sie die Datei dann wie bei einem Repository .gitignore. Beachten Sie, dass Sie einen absoluten Pfad verwenden müssen.


51
2017-09-20 13:08



Ich musste git-rm in git rm ändern, damit es funktioniert:

find . -depth -name '.DS_Store' -exec git rm --cached '{}' \; -print

13
2017-07-20 14:05



Wenn Sie die Dateien nicht entfernen können, weil sie gestaffelte Änderungen verwenden, gehen Sie wie folgt vor:

git rm --cached -f *.DS_Store

11
2018-05-12 00:21



Öffnen Sie das Terminal und geben Sie "cd <ProjectPath>" ein

  1. Entfernen Sie vorhandene Dateien: find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch

  2. nano .gitignore

  3. Füge das hinzu .DS_Store

  4. Typ "Strg + X"

  5. Geben Sie "y" ein

  6. Geben Sie ein, um die Datei zu speichern

  7. git add .gitignore

  8. git commit -m '.DS_Store removed.'


10
2017-11-24 09:30



lösche sie mit git-rmund fügen Sie anschließend .DS_Store hinzu .gitignore um zu verhindern, dass sie wieder hinzugefügt werden. Sie können auch verwenden Blaue Ernte um zu verhindern, dass sie alle zusammen erschaffen werden


8
2017-09-20 09:20



Die Antwort mit der besten Wahl ist großartig, aber ich helfe den Rookies wie mir, wie man die .gitignore-Datei erstellt, bearbeitet, speichert, die Dateien entfernt, die man bereits zu git hinzugefügt hat, und dann die Datei nach Github hochschiebt.

Erstellen Sie die .gitignore-Datei

Um eine .gitignore-Datei zu erstellen, können Sie einfach touch die Datei, die eine leere Datei mit dem angegebenen Namen erstellt. Wir wollen die Datei .gitignore erstellen, damit wir den folgenden Befehl verwenden können:

touch .gitignore

Ignoriere die Dateien

Jetzt müssen Sie die Zeile hinzufügen, die git anweist, die DS Store-Dateien in Ihrem .gitignore zu ignorieren. Sie können dazu den Nano-Editor verwenden.

nano .gitignore

Nano ist nett, weil es Anweisungen enthält, wie man rauskommt. (Strg-O speichern, Strg-X beenden)

Kopieren Sie einige der Ideen und fügen Sie sie ein Githubs Geiste Hier werden einige häufig zu ignorierende Dateien aufgeführt. Die wichtigsten, um diese Frage zu beantworten, wären:

# OS generated files #
######################
.DS_Store
.DS_Store?

Die # sind Kommentare und helfen Ihnen, Ihre Datei beim Wachstum zu organisieren.

Dies Github Artikel hat auch einige allgemeine Ideen und Richtlinien.

Entfernen Sie die Dateien, die bereits zu Git hinzugefügt wurden

Schließlich müssen Sie diese DS Store-Dateien tatsächlich aus Ihrem Verzeichnis entfernen.

Verwenden Sie diesen großartigen Befehl aus der Antwort mit der höchsten Wahl. Dies wird durch alle Ordner in Ihrem Verzeichnis gehen und diese Dateien von git entfernen.

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

Drücken Sie .gitignore bis Github

Im letzten Schritt müssen Sie Ihre .gitigore-Datei tatsächlich festschreiben.

git status

git add .gitignore

git commit -m '.DS_Store banished!'


6
2017-10-31 06:41



Das Folgende funktionierte am besten für mich. Behandelte nicht angepasste Dateien und Dateien mit lokalen Änderungen. Als Referenz wurde dies auf einem Mac 10.7-System mit Git 1.7.4.4 ausgeführt.

Suchen und entfernen:

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

Ich ignoriere auch global .DS_Store in allen Repositories, indem ich eine globale core.exclates-Datei einstelle.

Erstellen Sie zuerst die Datei (falls noch nicht vorhanden):

touch ~/.gitignore

Dann füge folgende Zeile hinzu und speichere:

.DS_Store

Konfigurieren Sie nun git, um die Datei global zu respektieren:

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

5
2017-09-28 00:52