Nicht-Repository-Dateien mit git entfernen?


97

Ich schreibe Autotools-Code und während der Entwicklung werden Tonnen von Dateien generiert.

Gibt es eine Möglichkeit, git anzuweisen, alle Dateien aus einem Verzeichnis zu entfernen, die nicht Teil des Repositorys sind?

Antworten:


178

Sie können git-clean verwenden . Dieser Befehl entfernt nicht verfolgte Dateien / Verzeichnisse. Standardmäßig wird nur das gedruckt, was entfernt worden wäre, ohne sie tatsächlich zu entfernen.

Geben Sie das -fFlag zum Entfernen der Dateien und das -dFlag zum Entfernen leerer Verzeichnisse an:

git clean -df

Auch ignorierte Dateien entfernen:

git clean -dfx

36
Werfen Sie ein -xund es ist alles so gut wie ein frisch geklontes Repo.
Dustin

2
Ich dachte, er wollte Dateien aus Git entfernen, nicht das eigentliche Dateisystem, whoops!
Andrew Marshall

Der Befehl git cleanselbst entfernt tatsächlich alle nicht verfolgten Dateien - außer wenn die Git-Konfigurationsvariable clean.requireForce auf true gesetzt ist. Wenn es auf false gesetzt ist, wird -ff zum Reinigen der Verzeichnisse benötigt
Adam

6
Neuere Versionen von git werden ohne Parameter fehlerhaft sein. requireForce ist standardmäßig true. Um einen Dryrun durchzuführen, benötigen Sie -n
Seb

1
Nachverfolgung von @Dustin: git clean -ixzeigt Ihnen, was gereinigt wird, und gibt Ihnen ein Menü mit Optionen. Mein Favorit.
Wcochran
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.