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?

Scott
quelle

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
Lily Ballard
quelle
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