HOWTO · Git
Nicht nachverfolgte Dateien in Git entfernen
Zeigen Sie nicht nachverfolgte Dateien mit git clean in der Vorschau an und entfernen Sie anschließend Dateien oder Verzeichnisse sicher. Erfahren Sie, wie -x und -X ignorierte Dateien behandeln.
Auf dieser Seite
Um nicht nachverfolgte Dateien in Git zu entfernen, zeige die möglichen Kandidaten zuerst mit git clean -n an. Prüfe die Liste und führe danach git clean -f aus. Mit -d werden zusätzlich nicht nachverfolgte Verzeichnisse einbezogen. git clean löscht Dateien aus deinem Arbeitsverzeichnis; Git kann nicht nachverfolgte Dateien, die weder committet noch gestaged wurden, nicht wiederherstellen.
Nicht nachverfolgte Dateien vor dem Bereinigen in der Vorschau anzeigen
Eine nicht nachverfolgte Datei liegt in deinem Arbeitsverzeichnis, wurde aber noch nicht zum Git-Index hinzugefügt und ist deshalb nicht in Commits enthalten. Mit git status kannst du nicht nachverfolgte Pfade anzeigen lassen. Dateien in einem nicht nachverfolgten Verzeichnis fasst Git dabei möglicherweise unter dem Verzeichnis zusammen. Möchtest du eine Datei behalten und künftig nachverfolgen, verwende stattdessen git add <file>.
Zeige nicht nachverfolgte Dateien vor dem Löschen mit git clean -n in der Vorschau an. Die Option -n führt einen Probelauf aus: Git listet die Dateien auf, die entfernt würden, ohne sie zu löschen. Um auch nicht nachverfolgte Verzeichnisse in die Vorschau aufzunehmen, verwende git clean -n -d. Prüfe jeden aufgeführten Pfad. Ignorierte Dateien sind standardmäßig nicht enthalten.
Nicht nachverfolgte Dateien und Verzeichnisse entfernen
Verwende nach der Prüfung der Vorschau -f, um das Löschen zu erlauben. Dieses eigenständige Beispiel erstellt ein temporäres Git-Repository, zeigt eine nicht nachverfolgte Datei in der Vorschau an und entfernt sie. Dein aktuelles Repository bleibt davon unberührt. Die Ausgabe zeigt notes.txt zuerst als möglichen Löschkandidaten und bestätigt anschließend die Entfernung.
scratch=$(mktemp -d)
trap 'rm -rf "$scratch"' EXIT
git -C "$scratch" init -q
printf 'temporary file\n' > "$scratch/notes.txt"
LC_ALL=C git -C "$scratch" clean -n
LC_ALL=C git -C "$scratch" clean -f
Would remove notes.txt
Removing notes.txt
In deinem Arbeitsverzeichnis entfernst du nicht nachverfolgte Dateien mit git clean -f und nicht nachverfolgte Dateien samt Verzeichnissen mit git clean -f -d. Führe zuerst die passende Vorschau aus: git clean -n oder git clean -n -d. Prüfe die angezeigten Kandidaten. Git kann das Löschen von Dateien, die nie committet oder gestaged wurden, nicht rückgängig machen.
Wenn nur bestimmte Dateien gelöscht werden sollen, entferne diese Pfade im Dateimanager oder mit einem Befehl wie rm <file>. Um Kandidaten interaktiv auszuwählen, verwende git clean -i; Git zeigt ein Menü an, statt alle Kandidaten auf einmal zu entfernen. Auch ein grafischer Git-Client kann nicht nachverfolgte Dateien anzeigen. Die Bezeichnungen und Löschfunktionen unterscheiden sich jedoch je nach Anwendung.
Ignorierte Dateien und weitere Optionen von git clean behandeln
Git schützt Dateien, die auf .gitignore passen, normalerweise vor git clean. Zu den ignorierten Dateien können Build-Ausgaben, lokale Konfigurationen oder Daten gehören, die du noch benötigst. Prüfe daher den Umfang, bevor du sie einbeziehst.
-xbezieht ignorierte Dateien zusammen mit anderen nicht nachverfolgten Dateien ein. Zeige diesen umfassenderen Bereinigungsumfang mitgit clean -n -d -xin der Vorschau an. Verwende anschließendgit clean -f -d -xnur, wenn du diese Kandidaten wirklich entfernen möchtest.-Xwählt ausschließlich ignorierte Dateien aus. Zeige sie mitgit clean -n -d -Xin der Vorschau an und verwende danngit clean -f -d -X, um nur ignorierte Dateien und Verzeichnisse zu entfernen.-dbezieht nicht nachverfolgte Verzeichnisse ein,-ferlaubt das Löschen,-nzeigt eine Vorschau an und-iöffnet die interaktive Auswahl.
Wähle -x, wenn du bei einer umfassenden Bereinigung ignorierte und andere nicht nachverfolgte Elemente einbeziehen möchtest. Wähle -X, wenn nur ignorierte Elemente bereinigt werden sollen. Prüfe vor beiden Befehlen die Vorschau besonders sorgfältig, falls ignorierte Pfade lokale Dateien enthalten, die du behalten möchtest.