Dateien in Git zu entfernen, ist nicht immer so simpel, wie es klingt. Du löschst eine Datei auf deinem System, aber damit ist sie nicht automatisch aus dem Repository verschwunden. Sie kann weiterhin in der Historie existieren oder schlimmer noch versehentlich erneut committed werden, etwa eine Config-Datei oder ein API-Schlüssel.
In diesem Guide lernst du, wie du Dateien in Git entfernst. Wir starten mit Basisbefehlen wie git rm und gehen dann zu fortgeschrittenen Methoden über, etwa zum Aufräumen unversionierter Dateien und zum Bearbeiten deiner Commit-Historie.
Voraussetzungen
Bevor wir mit Git Dateien entfernen, stellen wir sicher, dass alles eingerichtet ist.
Prüfe zunächst, ob Git installiert ist. Öffne dein Terminal und führe aus:
Wenn eine Versionsnummer erscheint, kannst du loslegen.
Wenn eine Versionsnummer erscheint, kannst du loslegen.
Wenn du lieber visuell arbeitest, kannst du auch ein Git-GUI wie GitHub Desktop, Sourcetree oder GitKraken installieren. In diesem Guide nutze ich jedoch die Kommandozeile (Git Bash).
Stelle sicher, dass du Berechtigungen für Änderungen im Repository hast, besonders wenn du im Team arbeitest oder mit einem Remote-Repo wie GitHub oder GitLab.
Hinweis: Manche Löschaktionen lassen sich nicht rückgängig machen. Es ist daher sinnvoll, dein Projekt zu sichern oder zumindest den Status deines Repos doppelt zu prüfen, bevor du Befehle ausführst, die Dateien löschen.
Wenn das passt, legen wir los.
Dateien in Git grundlegend entfernen
Es gibt verschiedene Wege, Dateien in Git zu entfernen, je nach Ziel. Hier sind gängige Optionen:
Mit git rm
Der Befehl git rm entfernt Dateien aus deinem Git-Repository. Beim Ausführen passieren zwei Dinge:
Git entfernt die Datei aus deinem Working Directory
Die Änderung wird für den nächsten Commit vorgemerkt (gestaged)
Git löscht die Datei also nicht nur. Die Löschung wird in der Historie nachverfolgt. Sobald du committest, ist die Datei offiziell aus dem Projekt entfernt.
Das löscht jede Datei im Ordner temp, ohne den Ordner selbst zu löschen.
Git schützt dich zusätzlich: Wenn eine Datei uncommittete Änderungen hat, löscht Git sie nicht, außer du erzwingst es. Nutze das nur, wenn du sicher bist, dass die Änderungen verworfen werden können:
(Hier bedeutet * „alle“. Es passt auf jeden Dateinamen, der auf .txt endet.)
2. --cached
Damit entfernst du die Datei aus dem Repository, behältst sie aber lokal. Angenommen, ich habe versehentlich eine sensible Datei wie config.env hinzugefügt. Ich will sie nicht im Repo, brauche sie aber lokal. Dann würde ich ausführen:
Standardmäßig löscht git rm aus Repository und Working Directory. --cached entfernt die Datei nur aus der Nachverfolgung (sie wird nicht gepusht), belässt sie aber physisch auf deinem Rechner.
Damit sie nicht wieder hinzugefügt wird, füge sie zu .gitignore hinzu:
Steht für rekursiv. Statt nur einer Datei wird das Verzeichnis mitsamt Inhalt rekursiv gelöscht. Ohne diese Option gibt Git einen Fehler aus, wenn du einen Ordner entfernen willst.
Du musst git add nicht separat ausführen. Das ist sauberer und du vergisst nicht, die Löschung zu stagen.
Kurz gesagt:
Manuelles Löschen erfordert zusätzliche Schritte, damit Git die Änderung erkennt.
Wenn du vergisst, die Löschung zu stagen, denkt Git weiterhin, dass die Datei existiert – das führt zu Verwirrung bei Commits oder Merges.
git rm ist sauberer und sicherer, wenn du getrackte Dateien gezielt entfernst.
Gelöschte Dateien in Git wiederherstellen
Was, wenn du eine Datei löschst und später merkst, dass du sie noch brauchst? Kein Problem. Git bietet mehrere Wege, sie wiederherzustellen – je nachdem, wann dir der Fehler auffällt.
Wenn du noch nicht committet hast:
Angenommen, du hast die Datei gelöscht, aber den Commit noch nicht gemacht. Dann kannst du sie aus dem letzten Commit so wiederherstellen:
In älteren Git-Versionen konntest du den obigen Befehl nutzen. Er stellt eine Datei aus einem bestimmten Commit wieder her, kann aber auch Branches wechseln.
Seit Git 2.23 wurde das in zwei klarere Befehle aufgeteilt:
git switch (zum Wechseln von Branches)
git restore (zum Wiederherstellen von Dateien)
Wenn du nur eine Datei aus einem Commit zurückholen willst, nutze:
Das zeigt die komplette Historie deiner Git-Commits, Checkouts, Resets und mehr.
Achtung: git reflog ist nur lokal und funktioniert nicht für Remotes. Wenn du mit einem Remote-Repo arbeitest, nutze besser git log -- file.txt, um die Dateihistorie zu verfolgen.
Sobald du den Punkt findest, an dem die Datei noch existierte, stelle sie wie oben mit git checkout oder git restore wieder her.
Fehlende Dateien in Git beheben
Manchmal werden Dateien direkt im System gelöscht – z. B. über den Dateimanager, einen Terminal-rm-Befehl oder schlicht aus Versehen. Git räumt dann nicht automatisch auf. Stattdessen markiert es diese Dateien als fehlend und wartet darauf, dass du die Entfernung korrekt verarbeitest.
Ersetze <branch-name> mit deinem Arbeitsbranch, z. B. main oder dev.
Schritt 4: Alternative
Angenommen, du hast viele Dateien manuell gelöscht, aus Versehen oder beim Aufräumen. Git denkt weiterhin, dass diese Dateien existieren, bis du es anders sagst.
Wenn du nicht jede einzeln mit git rm entfernen willst, gibt es eine schnellere Aufräummethode.
git ls-files --deleted listet alle Dateien auf, die Git trackt, die aber auf deiner Disk fehlen.
xargs -0 git rm übergibt diese Dateinamen an git rm und entfernt sie aus dem Index.
Das ist sehr hilfreich in großen Projekten, wenn du schnell aufräumen willst.
Hinweis: Diese Meldung erscheint, weil es derzeit keine getrackten Dateien gibt, die auf deiner Festplatte fehlen.
Fortgeschrittenes Entfernen von Dateien in Git
Nachdem wir die Grundlagen abgedeckt haben, schauen wir auf komplexere Situationen, in denen das Entfernen einer Datei nicht so einfach wie git rm ist. Etwa wenn sensible Daten im Spiel sind oder ungetrackte Dateien sorgfältig bereinigt werden müssen.
Sensible Daten aus Git entfernen
Manchmal wird versehentlich eine Datei mit vertraulichen Daten wie API-Keys oder Passwörtern committed. Ein normales Löschen hilft dann nicht. Da Git die komplette Historie speichert, existiert die Datei weiterhin in früheren Commits.
Um sie vollständig zu entfernen, kannst du git filter-repo verwenden: git filter-repo (empfohlen)
Das ist die modernere, bessere Alternative zu filter-branch – schneller, sicherer und einfacher.
Installiere es zuerst (du brauchst Python und pip):
Informiere anschließend dein Team. Sie müssen neu klonen oder ihre lokalen Kopien zurücksetzen, um Fehler zu vermeiden.
Ungetrackte Dateien mit git clean aufräumen
Kurz zur Einordnung:
Getrackte Dateien sind in der Git-Historie. Zum Entfernen nutze git rm und committe.
Ungetrackte Dateien sind Git unbekannt. Sie sammeln sich an und vermüllen dein Projekt.
Um ungetrackte Dateien oder Ordner zu löschen, nutze git clean.
Die nützlichsten Optionen:
git clean -n # Zeigt, welche ungetrackten Dateien entfernt würdengit clean -nd # Zeigt, welche ungetrackten Ordner entfernt würdengit clean -fd # Löscht alle ungetrackten Dateien und Ordner. Destruktiv.Bereitgestellt von
Dabei gilt:
-n bedeutet nur Vorschau.
-f bedeutet hartes Löschen.
-d bezieht Ordner in die Bereinigung ein.
Hinweis: git clean fasst getrackte Dateien nicht an. Es löscht aber alles Ungetrackte – auch Dateien, die du vielleicht behalten wolltest. Nutze daher immer erst -n, um zu sehen, was entfernt würde.
Dateien in GitHub & GUI-Tools entfernen
Bisher haben wir die Kommandozeile genutzt. Aber nicht alle arbeiten so, und das ist völlig okay. Manche Entwickler nutzen visuelle Tools direkt in GitHub.
Schauen wir uns an, wie das Löschen in der GitHub-Weboberfläche und in anderen GUI-Tools funktioniert – und wie das im Vergleich zur Kommandozeile aussieht.
Dateien auf der GitHub-Website löschen
Wenn du im Browser auf GitHub arbeitest, kannst du Dateien ohne Terminal löschen.
So funktioniert es in der 2025er Oberfläche:
Öffne die zu löschende Datei.
Klicke oben rechts auf die drei Punkte.
Wähle im Dropdown „Delete file“.
GitHub zeigt dir dann ein Feld für die Commit-Nachricht. Füge eine kurze Nachricht hinzu wie:
Oder einen neuen Branch anlegen und einen Pull Request starten (empfohlen für Team-Workflows)
Klicke auf Commit changes, und GitHub entfernt die Datei und speichert die Löschung als Commit – genau wie git rm an der Kommandozeile.
Dateien mit Git-GUI-Tools löschen
Wenn du ein Git-GUI wie GitHub Desktop, Sourcetree oder Tower nutzt, ist der Ablauf ebenso einfach:
Lösche die Datei im Dateimanager oder in der App.
Die App zeigt die Löschung unter „Changes“ oder „File Status“.
Prüfe, stage und committe die Änderung.
Die Oberflächen unterscheiden sich leicht, aber der Workflow ist ähnlich: Du verfolgst Änderungen visuell und commitest, wenn du bereit bist.
Best Practices je Plattform
So funktioniert das Löschen über verschiedene Plattformen – und wofür sie sich am besten eignen:
GitHub (Web): Gut für schnelle Fixes und kleine Updates. Für große Aufräumarbeiten oder sensible Dateien eher meiden.
Git-GUI-Tools: Ideal für den Alltag. Änderungen sind leicht einsehbar und sicher zu committen.
Kommandozeile: Am flexibelsten und mächtigsten. Optimal für fortgeschrittene Aufgaben wie Massenänderungen oder Historie-Neuschreibungen.
Best Practices zum Entfernen von Dateien in Git
Dateien in Git zu entfernen wirkt simpel, aber ein falscher Schritt kann deinen Code brechen. Hier sind ein paar praxisnahe Tipps, mit denen ich Löschungen sicher und kontrolliert halte – besonders in gemeinsamen oder langfristigen Projekten.
Vor dem Löschen immer prüfen
Bevor du eine Datei entfernst, nimm dir eine Minute für die Prüfung:
Führe git status aus, um zu sehen, ob sie gestaged oder geändert ist.
Nutze git log -- <filename>, um die Commit-Historie der Datei zu prüfen.
Dieser kurze Check spart später oft Stunden an Wiederherstellung.
Atomare Commits nutzen
Ein atomarer Commit bedeutet: ein Commit pro logischer Änderung.
Wenn ich z. B. ungenutzte Dateien lösche, committe ich nur diese Löschungen – getrennt von Codeänderungen.
Das ist hilfreich, weil:
Debugging leichter wird. Tools wie git bisect funktionieren besser, wenn Commits klein und fokussiert sind.
Die Commit-Historie sauber und verständlich bleibt.
Code-Reviews schneller gehen.
Bei History-Rewrites im Team sorgfältig vorgehen
Das Umschreiben der Historie mit Tools wie git filter-repo betrifft alle im Team. Um Chaos zu vermeiden:
Kommuniziere, bevor du gemeinsame Branches umschreibst.
Nutze git push --force mit Bedacht, da damit die Remote-Historie neu geschrieben wird.
Bitte dein Team, die lokalen Repos neu zu klonen oder zurückzusetzen.
--dry-run vor destruktiven Befehlen einsetzen
Bevor du einen Befehl ausführst, der Dateien löscht, teste ihn:
Hält sensible oder lokale Dateien (z. B. .env, .log oder node_modules) aus dem Repo heraus.
Verhindert Müll in deiner Git-Historie.
Zukünftige Änderungen an diesen Dateien lösen keine Git-Änderungen mehr aus.
Git-Sonderfälle: Staging & leere Ordner
Manchmal läuft das Entfernen nicht wie erwartet. Du staget versehentlich die falsche Datei oder stößt auf Probleme mit leeren Ordnern.
So gehe ich mit typischen Edge Cases um.
Datei entstagen, ohne Änderungen zu verlieren
Angenommen, ich habe git add . ausgeführt und dabei versehentlich eine Datei gestaged. Ich will die Änderungen behalten – nur das Staging rückgängig machen.
Damit setzt du alle Dateien auf den letzten Commit zurück.
Fazit
Beim Entfernen von Dateien in Git ist ein Fehler schnell passiert. Eine kleine Unachtsamkeit kann größere Probleme auslösen: kaputter Code, verlorene Arbeit oder Verwirrung im Team. Nimm dir daher einen Moment für einen Doppelcheck.
Nutze je nach Situation den passenden Befehl. Wenn du unsicher bist, probiere erst einen Dry-Run. Und wenn du im Team arbeitest, sorge dafür, dass alle auf dem gleichen Stand sind.
Geh Schritt für Schritt vor. So wirst du in dem Thema richtig gut.
Git Remove File FAQs
What does “staging the removal” mean?⌄
Staging bedeutet, Änderungen für deinen nächsten Commit vorzubereiten. Wenn du git rm filename ausführst, löscht Git die Datei aus deinem Ordner und bereitet diese Löschung für den nächsten Commit vor. Das nennt man „das Entfernen stagen“. Dauerhaft wird die Änderung erst mit git commit.
What’s the difference between git rm and rm?⌄
rm löscht eine Datei nur lokal in deinem Ordner. Git verfolgt diese Änderung erst, wenn du sie explizit angibst.
git rm entfernt die Datei und staged die Löschung für deinen nächsten Commit, sodass Git sie auch aus dem Repo löscht.
When should I use git push origin vs git push?⌄
So entscheidest du:
Nutze git push, wenn dein Branch bereits mit einem Remote verknüpft ist.
Nutze git push origin, wenn du explizit angeben willst, zu welchem Remote gepusht wird, z. B. beim ersten Push eines neuen Branches oder bei mehreren Remotes.
What does git pull do?⌄
git pull aktualisiert deinen lokalen Branch mit den neuesten Änderungen vom Remote. Es holt neue Commits und merged sie in deinen aktuellen Branch.
Ich bin ein Inhaltsstratege, der es liebt, komplexe Themen zu vereinfachen. Ich habe Unternehmen wie Splunk, Hackernoon und Tiiny Host geholfen, ansprechende und informative Inhalte für ihr Publikum zu erstellen.
Mach dich mit Python-Datenstrukturen vertraut: Lerne mehr über Datentypen und primitive sowie nicht-primitive Datenstrukturen wie Strings, Listen, Stapel usw.
Lerne, wie du Python-Listen mit Techniken wie Slicing, List Comprehensions und itertools aufteilen kannst. Finde heraus, wann du welche Methode für die beste Datenverarbeitung nutzen solltest.
Lerne die Versionsverwaltung mit Git von den Grundlagen bis zu fortgeschrittenen Workflows. Änderungen im Lernpfad nachverfolgen, Repositories verwalten und effizient zusammenarbeiten.
Git-Advanced-Funktionen meistern, um Data-Science- und Engineering-Workflows zu optimieren – von komplexem Merging bis zur Optimierung großer Projekte.
Dateien in Git zu entfernen, ist nicht immer so simpel, wie es klingt. Du löschst eine Datei auf deinem System, aber damit ist sie nicht automatisch aus dem Repository verschwunden. Sie kann weiterhin in der Historie existieren oder schlimmer noch versehentlich erneut committed werden, etwa eine Config-Datei oder ein API-Schlüssel.
In diesem Guide lernst du, wie du Dateien in Git entfernst. Wir starten mit Basisbefehlen wie
git rmund gehen dann zu fortgeschrittenen Methoden über, etwa zum Aufräumen unversionierter Dateien und zum Bearbeiten deiner Commit-Historie.Voraussetzungen
Bevor wir mit Git Dateien entfernen, stellen wir sicher, dass alles eingerichtet ist.
Prüfe zunächst, ob Git installiert ist. Öffne dein Terminal und führe aus:
Wenn eine Versionsnummer erscheint, kannst du loslegen.
Wenn eine Versionsnummer erscheint, kannst du loslegen.
Wenn du lieber visuell arbeitest, kannst du auch ein Git-GUI wie GitHub Desktop, Sourcetree oder GitKraken installieren. In diesem Guide nutze ich jedoch die Kommandozeile (Git Bash).
Stelle sicher, dass du Berechtigungen für Änderungen im Repository hast, besonders wenn du im Team arbeitest oder mit einem Remote-Repo wie GitHub oder GitLab.
Hinweis: Manche Löschaktionen lassen sich nicht rückgängig machen. Es ist daher sinnvoll, dein Projekt zu sichern oder zumindest den Status deines Repos doppelt zu prüfen, bevor du Befehle ausführst, die Dateien löschen.
Wenn das passt, legen wir los.
Dateien in Git grundlegend entfernen
Es gibt verschiedene Wege, Dateien in Git zu entfernen, je nach Ziel. Hier sind gängige Optionen:
Mit git rm
Der Befehl
git rmentfernt Dateien aus deinem Git-Repository. Beim Ausführen passieren zwei Dinge:Git löscht die Datei also nicht nur. Die Löschung wird in der Historie nachverfolgt. Sobald du committest, ist die Datei offiziell aus dem Projekt entfernt.
Du kannst eine Datei, mehrere Dateien oder eine Gruppe per Wildcard entfernen.
Beispiel: Alle Logdateien entfernen:
Damit weist du Git an, jede Datei im Ordner zu entfernen, die auf
.logendet. Prüfe die Änderung mit:Mehrere Dateien mit einem einzigen git rm löschen. Bild: Autorin.
Du willst alle Dateien in einem Ordner löschen, aber den Ordner behalten? Nutze:
Das löscht jede Datei im Ordner temp, ohne den Ordner selbst zu löschen.
Git schützt dich zusätzlich: Wenn eine Datei uncommittete Änderungen hat, löscht Git sie nicht, außer du erzwingst es. Nutze das nur, wenn du sicher bist, dass die Änderungen verworfen werden können:
Um einen kompletten Ordner samt Inhalt zu entfernen, füge das Flag
-rhinzu:Dadurch werden
testfolderund alle enthaltenen Dateien entfernt.Um die Änderung zu committen, führe aus:
Wichtige Optionen für git rm
Das sind die häufigsten Optionen, die du mit
git rmverwenden wirst:1. <filename>
Die Basisvariante: Liste die Dateien auf, die du entfernen willst:
Du kannst auch Wildcards nutzen, um mehrere Dateien gleichen Typs zu löschen. Zum Beispiel alle
.txt-Dateien:(Hier bedeutet
*„alle“. Es passt auf jeden Dateinamen, der auf.txtendet.)2. --cached
Damit entfernst du die Datei aus dem Repository, behältst sie aber lokal. Angenommen, ich habe versehentlich eine sensible Datei wie config.env hinzugefügt. Ich will sie nicht im Repo, brauche sie aber lokal. Dann würde ich ausführen:
Standardmäßig löscht
git rmaus Repository und Working Directory.--cachedentfernt die Datei nur aus der Nachverfolgung (sie wird nicht gepusht), belässt sie aber physisch auf deinem Rechner.Damit sie nicht wieder hinzugefügt wird, füge sie zu
.gitignorehinzu:3. -r
Steht für rekursiv. Statt nur einer Datei wird das Verzeichnis mitsamt Inhalt rekursiv gelöscht. Ohne diese Option gibt Git einen Fehler aus, wenn du einen Ordner entfernen willst.
Hier habe ich einen Ordner namens
testfolderund zwei Dateien darin erstellt:a.txtundb.txt.Anschließend führe ich Folgendes aus:Dadurch wurde der Ordner mitsamt allen enthaltenen Dateien gelöscht.
4.
--dry-runWenn du unsicher bist, was beim Entfernen passiert, nutze
git rmmit der Option--dry-runso:So kannst du sicher vorab prüfen, was gelöscht würde.
Oder wenn du unversionierte Dateien aufräumen willst und vorher prüfen möchtest, was gelöscht wird, nutze:
Das zeigt nur an, was dieser Befehl löschen würde.
Vergleich von Workflows
Es gibt mehr als einen Weg, eine Datei in Git zu entfernen. Die Methoden wirken ähnlich, verhalten sich aber unterschiedlich.
git rm vs. manuelles Löschen
Nehmen wir eine Datei namens
file.txt. Angenommen, ich brauche sie nicht mehr.Eine Möglichkeit ist, sie direkt im System zu löschen.
Unter Linux, macOS oder Git Bash:
Unter Windows (Eingabeaufforderung):
Das löscht die Datei aus deinem Ordner. Git weiß davon aber noch nichts. Du musst Git also manuell mitteilen, dass die Datei entfernt wurde:
Damit wird die Löschung gestaged, sodass sie im nächsten Commit enthalten ist.
Wenn du mehrere Dateien gelöscht hast und nicht mehr genau weißt, welche, kannst du ausführen:
Damit werden alle getrackten, geänderten oder gelöschten Dateien gestaged. Ungetrackte Dateien sind nicht enthalten.
Jetzt committest du die Änderung:
Wenn du
git rmnutzt, erledigt es alles in einem Schritt. Die Datei wird gelöscht und die Änderung sofort gestaged:Du musst
git addnicht separat ausführen. Das ist sauberer und du vergisst nicht, die Löschung zu stagen.Kurz gesagt:
git rmist sauberer und sicherer, wenn du getrackte Dateien gezielt entfernst.Gelöschte Dateien in Git wiederherstellen
Was, wenn du eine Datei löschst und später merkst, dass du sie noch brauchst? Kein Problem. Git bietet mehrere Wege, sie wiederherzustellen – je nachdem, wann dir der Fehler auffällt.
Wenn du noch nicht committet hast:
Angenommen, du hast die Datei gelöscht, aber den Commit noch nicht gemacht. Dann kannst du sie aus dem letzten Commit so wiederherstellen:
Damit holst du die Datei aus dem letzten Commit zurück in dein Working Directory.
Wenn du die Löschung bereits committed hast:
Auch okay. Finde zunächst den letzten Commit, in dem die Datei noch existierte:
Gehe das Log durch und kopiere den Commit-Hash, in dem die Datei noch vorhanden war. Führe dann aus:
In älteren Git-Versionen konntest du den obigen Befehl nutzen. Er stellt eine Datei aus einem bestimmten Commit wieder her, kann aber auch Branches wechseln.
Seit Git 2.23 wurde das in zwei klarere Befehle aufgeteilt:
git switch(zum Wechseln von Branches)git restore(zum Wiederherstellen von Dateien)Wenn du nur eine Datei aus einem Commit zurückholen willst, nutze:
Das holt die Datei aus diesem Commit zurück in dein Working Directory.
Wenn du nicht weißt, wann die Datei gelöscht wurde:
Vielleicht hast du viele Änderungen gemacht und weißt nicht mehr, wann die Datei verschwunden ist. Dann hilft git reflog (Reference Log):
Das zeigt die komplette Historie deiner Git-Commits, Checkouts, Resets und mehr.
Achtung:
git reflogist nur lokal und funktioniert nicht für Remotes. Wenn du mit einem Remote-Repo arbeitest, nutze bessergit log -- file.txt, um die Dateihistorie zu verfolgen.Sobald du den Punkt findest, an dem die Datei noch existierte, stelle sie wie oben mit
git checkoutodergit restorewieder her.Fehlende Dateien in Git beheben
Manchmal werden Dateien direkt im System gelöscht – z. B. über den Dateimanager, einen Terminal-
rm-Befehl oder schlicht aus Versehen. Git räumt dann nicht automatisch auf. Stattdessen markiert es diese Dateien als fehlend und wartet darauf, dass du die Entfernung korrekt verarbeitest.So gehst du Schritt für Schritt vor.
Schritt 1: Auf fehlende Dateien prüfen
Führe in deinem Projektordner aus:
Wenn Git angibt, dass eine Datei gelöscht wurde, ist sie zwar vom System verschwunden, die Änderung aber noch nicht gestaged.
Schritt 2: Löschung stagen
Um Git alle Änderungen (inkl. gelöschter Dateien) mitzuteilen, führe aus:
Damit werden alle Dateiänderungen gestaged: neue, geänderte und gelöschte. Danach committen:
So räumst du am sichersten auf, weil alle Änderungen in einem Rutsch erfasst werden.
Schritt 3: In das Remote pushen
Wenn du mit einem Remote-Repository arbeitest, pushe den Commit:
Ersetze<branch-name>mit deinem Arbeitsbranch, z. B.mainoderdev.Schritt 4: Alternative
Angenommen, du hast viele Dateien manuell gelöscht, aus Versehen oder beim Aufräumen. Git denkt weiterhin, dass diese Dateien existieren, bis du es anders sagst.
Wenn du nicht jede einzeln mit
git rmentfernen willst, gibt es eine schnellere Aufräummethode.Führe im Terminal aus:
Das passiert dabei:
git ls-files --deletedlistet alle Dateien auf, die Git trackt, die aber auf deiner Disk fehlen.xargs -0 git rmübergibt diese Dateinamen angit rmund entfernt sie aus dem Index.Das ist sehr hilfreich in großen Projekten, wenn du schnell aufräumen willst.
Hinweis: Diese Meldung erscheint, weil es derzeit keine getrackten Dateien gibt, die auf deiner Festplatte fehlen.
Fortgeschrittenes Entfernen von Dateien in Git
Nachdem wir die Grundlagen abgedeckt haben, schauen wir auf komplexere Situationen, in denen das Entfernen einer Datei nicht so einfach wie
git rmist. Etwa wenn sensible Daten im Spiel sind oder ungetrackte Dateien sorgfältig bereinigt werden müssen.Sensible Daten aus Git entfernen
Manchmal wird versehentlich eine Datei mit vertraulichen Daten wie API-Keys oder Passwörtern committed. Ein normales Löschen hilft dann nicht. Da Git die komplette Historie speichert, existiert die Datei weiterhin in früheren Commits.
Um sie vollständig zu entfernen, kannst du
git filter-repoverwenden: git filter-repo (empfohlen)Das ist die modernere, bessere Alternative zu
filter-branch– schneller, sicherer und einfacher.Installiere es zuerst (du brauchst Python und pip):
Dann führe aus:
Damit wird die Datei
hide.txtaus jedem Commit in der Repo-Historie entfernt.Zur Bestätigung führe aus:
Wenn die Datei verschwunden ist, füge sie zu
.gitignorehinzu, damit sie nicht wieder getrackt wird:Wenn du im Team arbeitest, bereinige die umgeschriebene Historie und force-pushe die Änderungen:
Informiere anschließend dein Team. Sie müssen neu klonen oder ihre lokalen Kopien zurücksetzen, um Fehler zu vermeiden.
Ungetrackte Dateien mit git clean aufräumen
Kurz zur Einordnung:
git rmund committe.Um ungetrackte Dateien oder Ordner zu löschen, nutze
git clean.Die nützlichsten Optionen:
Dabei gilt:
-nbedeutet nur Vorschau.-fbedeutet hartes Löschen.-dbezieht Ordner in die Bereinigung ein.Hinweis:
git cleanfasst getrackte Dateien nicht an. Es löscht aber alles Ungetrackte – auch Dateien, die du vielleicht behalten wolltest. Nutze daher immer erst-n, um zu sehen, was entfernt würde.Dateien in GitHub & GUI-Tools entfernen
Bisher haben wir die Kommandozeile genutzt. Aber nicht alle arbeiten so, und das ist völlig okay. Manche Entwickler nutzen visuelle Tools direkt in GitHub.
Schauen wir uns an, wie das Löschen in der GitHub-Weboberfläche und in anderen GUI-Tools funktioniert – und wie das im Vergleich zur Kommandozeile aussieht.
Dateien auf der GitHub-Website löschen
Wenn du im Browser auf GitHub arbeitest, kannst du Dateien ohne Terminal löschen.
So funktioniert es in der 2025er Oberfläche:
GitHub zeigt dir dann ein Feld für die Commit-Nachricht. Füge eine kurze Nachricht hinzu wie:
Du kannst optional eine Beschreibung ergänzen.
Wähle dann, wie die Änderung gespeichert wird:
maincommittenKlicke auf Commit changes, und GitHub entfernt die Datei und speichert die Löschung als Commit – genau wie
git rman der Kommandozeile.Dateien mit Git-GUI-Tools löschen
Wenn du ein Git-GUI wie GitHub Desktop, Sourcetree oder Tower nutzt, ist der Ablauf ebenso einfach:
Die Oberflächen unterscheiden sich leicht, aber der Workflow ist ähnlich: Du verfolgst Änderungen visuell und commitest, wenn du bereit bist.
Best Practices je Plattform
So funktioniert das Löschen über verschiedene Plattformen – und wofür sie sich am besten eignen:
Best Practices zum Entfernen von Dateien in Git
Dateien in Git zu entfernen wirkt simpel, aber ein falscher Schritt kann deinen Code brechen. Hier sind ein paar praxisnahe Tipps, mit denen ich Löschungen sicher und kontrolliert halte – besonders in gemeinsamen oder langfristigen Projekten.
Vor dem Löschen immer prüfen
Bevor du eine Datei entfernst, nimm dir eine Minute für die Prüfung:
git statusaus, um zu sehen, ob sie gestaged oder geändert ist.git log -- <filename>, um die Commit-Historie der Datei zu prüfen.Dieser kurze Check spart später oft Stunden an Wiederherstellung.
Atomare Commits nutzen
Ein atomarer Commit bedeutet: ein Commit pro logischer Änderung.
Wenn ich z. B. ungenutzte Dateien lösche, committe ich nur diese Löschungen – getrennt von Codeänderungen.
Das ist hilfreich, weil:
git bisectfunktionieren besser, wenn Commits klein und fokussiert sind.Bei History-Rewrites im Team sorgfältig vorgehen
Das Umschreiben der Historie mit Tools wie
git filter-repobetrifft alle im Team. Um Chaos zu vermeiden:git push --forcemit Bedacht, da damit die Remote-Historie neu geschrieben wird.--dry-run vor destruktiven Befehlen einsetzen
Bevor du einen Befehl ausführst, der Dateien löscht, teste ihn:
Das zeigt, was gelöscht würde, ohne etwas zu löschen. Ich empfehle das immer, weil:
git rm --cached mit .gitignore kombinieren
Wenn du etwas versehentlich committed hast, das nicht ins Repo gehört (z. B. eine Config-Datei oder Logs), behebe das in zwei Schritten:
Damit sagst du Git, die Datei nicht mehr zu tracken – lokal bleibt sie erhalten.
gitignorehinzufügen:Warum das hilft:
.env,.logodernode_modules) aus dem Repo heraus.Git-Sonderfälle: Staging & leere Ordner
Manchmal läuft das Entfernen nicht wie erwartet. Du staget versehentlich die falsche Datei oder stößt auf Probleme mit leeren Ordnern.
So gehe ich mit typischen Edge Cases um.
Datei entstagen, ohne Änderungen zu verlieren
Angenommen, ich habe
git add .ausgeführt und dabei versehentlich eine Datei gestaged. Ich will die Änderungen behalten – nur das Staging rückgängig machen.Dafür nutze ich:
Das entfernt die Datei aus dem Staging-Bereich, belässt aber die lokalen Änderungen.
Zur Kontrolle nutze ich:
Jetzt sollte die Datei als „modified“ statt „staged“ erscheinen.
Leere Ordner im Repo behalten
Standardmäßig ignoriert Git leere Ordner. Versuchst du, einen leeren Ordner zu committen, überspringt Git ihn.
Manchmal willst du den Ordner aber behalten, etwa für künftige Logs oder Uploads. Der übliche Trick: eine Platzhalterdatei
.gitkeep.So geht’s:
Damit ist der Ordner „nicht leer“ und wird von Git getrackt.
Hinweis:
.gitkeepist kein Git-Feature, sondern eine Konvention. Du kannst die Datei beliebig nennen –.gitkeepmacht anderen klar, wofür sie da ist.Troubleshooting beim Entfernen von Dateien
Hier sind ein paar häufige Probleme beim Entfernen von Dateien in Git – und wie du sie löst.
Die Datei erscheint weiterhin im Remote-Repository
Du hast die Datei gelöscht und committed, aber sie ist im Remote noch sichtbar. Vielleicht hast du das Pushen vergessen.
Stelle also sicher, dass du ausführst:
Prüfe außerdem:
Probleme mit Submodulen
Submodule sind Git-Repos in anderen Git-Repos. Sie verhalten sich nicht wie normale Ordner.
Wenn du Dateien in einem Submodul löschst:
Wenn du das Submodul komplett entfernst:
.gitmodulesund.git/configDetached-HEAD-Zustand
In Git zeigt
HEADnormalerweise auf den aktuellen Branch. Manchmal zeigt es aber auf einen bestimmten Commit – das nennt sich Detached HEAD.Das passiert, wenn du:
Prüfe deinen Status:
Wenn du siehst:
Du bist auf keinem Branch, und neue Änderungen können verloren gehen, wenn du wegwechselst.
So behebst du das:
Wenn du Änderungen gemacht hast und sie behalten willst, führe aus:
Damit legst du deine Arbeit auf einen neuen Branch und sicherst sie.
Wenn du bereits committed hast und die Änderungen später auf einen anderen Branch verschieben willst, mache Folgendes:
Wenn du keine Änderungen gemacht hast und nur aus dem Detached-HEAD raus willst, führe aus:
Fertig. Dein HEAD ist wieder verbunden und alles ist normal.
Berechtigungs- oder Statusfehler
Manchmal löscht Git eine Datei nicht – häufig unter Windows. Das kann passieren, wenn:
So behebst du das:
Merge- oder Rebase-Probleme
Wenn du Fehlermeldungen siehst wie:
Bist du vermutlich mitten in einem Merge oder Rebase.
Um ein Rebase nach dem Lösen von Konflikten fortzusetzen:
Um Rebase oder Merge komplett abzubrechen:
Damit stellst du dein Repo auf den Zustand vor dem Merge zurück.
Willst du alle lokalen Änderungen verwerfen und dein Working Directory zurücksetzen?
Probiere das:
Damit setzt du alle Dateien auf den letzten Commit zurück.
Fazit
Beim Entfernen von Dateien in Git ist ein Fehler schnell passiert. Eine kleine Unachtsamkeit kann größere Probleme auslösen: kaputter Code, verlorene Arbeit oder Verwirrung im Team. Nimm dir daher einen Moment für einen Doppelcheck.
Nutze je nach Situation den passenden Befehl. Wenn du unsicher bist, probiere erst einen Dry-Run. Und wenn du im Team arbeitest, sorge dafür, dass alle auf dem gleichen Stand sind.
Git kann weit mehr, als Dateien zu löschen. Du kannst Branches löschen, Fehler mit reset und revert rückgängig machen oder mit git diff genau sehen, was sich geändert hat. Je mehr du lernst, desto reibungsloser wird dein Workflow.
Geh Schritt für Schritt vor. So wirst du in dem Thema richtig gut.