Bei der Arbeit mit Git passieren Unfälle. Sie haben vielleicht versehentlich eine Datei eingefügt, die dort nicht hingehört, oder Ihr Commit ist nicht ganz klar. Dies sind nur einige Szenarien, in denen Sie möglicherweise eine Datei aus einem Commit löschen möchten.
In dieser Anleitung erfahren Sie genau, wie Sie eine Datei aus einem Commit löschen und warum Sie beim Löschen von Git-Dateien besonders vorsichtig sein sollten.
So entfernen Sie eine Datei aus einem Git-Commit
Es gibt mehrere Möglichkeiten, eine Datei aus einem Git-Commit zu löschen, je nachdem, ob es sich um ein lokales Commit handelt oder ob Sie es bereits in ein Remote-Repo gepusht haben. Der einfache Weg wäre Löschen Sie das gesamte Commit in Gitaber wenn Sie die meisten Dateien behalten möchten, können Sie mit „git reset“ eine Datei aus einem lokalen Repository wie folgt löschen:
- Verwenden Git-Protokoll um das Commit zu finden, das die Datei enthält, die Sie entfernen möchten.
- Ausführen git reset –soft HEAD^ um das letzte Commit rückgängig zu machen, die Änderungen aber im Staging-Bereich beizubehalten.
- Heben Sie die Bereitstellung der zu entfernenden Datei auf mit git setzt HEAD zurück.
im Terminal Breite = 578 Höhe = 363 srcset = https://www.alphr.com/wp-content/uploads/2023/12/Removing-a-File-From-a-Commit-Step-by-Step-3.png 578w, https://www.alphr.com/wp-content/uploads/2023/12/Removing-a-File-From-a-Commit-Step-by-Step-3-300&215;188.png 300w, https://www.alphr.com/wp-content/uploads/2023/12/Removing-a-File-From-a-Commit-Step-by-Step-3-510&215;320.png 510w, https://www.alphr.com/wp-content/uploads/2023/12/Removing-a-File-From-a-Commit-Step-by-Step-3-400&215;250.png 400w, https://www.alphr.com/wp-content/uploads/2023/12/Removing-a-File-From-a-Commit-Step-by-Step-3-302&215;190.png 302w Größen=(max-width: 578px) 100vw, 578px> - Übernehmen Sie den Rest der Dateien erneut mit git commit -m „Ihre Commit-Nachricht.“
Seit dem Git 2.23.0-Update können Sie „git restore“ auch wie folgt verwenden:
- Eingeben git restore –staged und ersetzen Sie „Dateipfad“ durch die Datei, die Sie entfernen möchten.
Befehl in der Befehlszeile width=578 height=363 srcset=https://www.alphr.com/wp-content/uploads/2023/12/git-restore-1.png 578w, https://www.alphr.com/wp-content/uploads/2023/12/git-restore-1-300&215;188.png 300w, https://www.alphr.com/wp-content/uploads/2023/12/git-restore-1-510&215;320.png 510w, https://www.alphr.com/wp-content/uploads/2023/12/git-restore-1-400&215;250.png 400w, https://www.alphr.com/wp-content/uploads/2023/12/git-restore-1-302&215;190.png 302w Größen=(max-width: 578px) 100vw, 578px> - Dann committen Sie: git commit -c ORIG_HEAD.
Eine weitere Möglichkeit zum vollständigen Entfernen der Datei besteht darin, Folgendes zu tun:
- Entfernen Sie die Datei mit git rm.
- Ersetzen Sie „Dateiname“ durch den tatsächlichen Namen der Datei.
- Übernehmen Sie mit dem Änderungsflag durch Eingabe git commit –ändern.
Der Befehl „rm“ entfernt eine Datei sowohl aus dem Arbeitsbaum als auch aus dem Index. Das bedeutet, dass sie sowohl aus dem lokalen als auch aus dem Remote-Repository vollständig verschwindet. Dies ist ein nützlicher Befehl, wenn Sie eine Datei verfolgen und später entscheiden, dass sie nicht mehr verfolgt werden muss, sodass Sie sie aus dem gesamten Projekt löschen können.
Sie können auch das Löschen des Git-Zweigs selbst in Betracht ziehen, wenn Sie alle Commits und Dateien in einem Zweig entfernen möchten.
Warum eine Datei aus einem Git-Commit entfernen?
Es gibt mehrere Gründe, warum Sie möglicherweise eine Datei aus einem Git-Commit entfernen müssen. Sehen wir uns einige davon an.
Vereinfachen des Commit-Verlaufs
Bei großen und komplexen Projekten kann der Commit-Verlauf mit Änderungen, Aktualisierungen und Korrekturen überladen sein. Und einige dieser Änderungen müssen einfach nicht vorhanden sein. Manchmal wird eine Datei committet, die dem Fortschritt oder der Übersichtlichkeit des Projekts nicht förderlich ist – wie eine experimentelle Funktion, die nicht funktioniert hat, oder eine temporäre Datei, die zu lange im Commit war.
Das Entfernen solcher Dateien aus Commits kann den Verlauf Ihres Projekts erheblich entrümpeln und es Teammitgliedern erleichtern, den Entwicklungszeitplan zu verstehen. Wenn Sie Teil eines Teams sind, hilft ein klarer und prägnanter Commit-Verlauf Ihren Teammitgliedern, sich an der Entwicklung Ihres Projekts zu orientieren und auf dem Laufenden zu bleiben, ohne Zeit mit dem Entschlüsseln von komplexem Code zu verschwenden.
Fehler korrigieren
Das Korrigieren von Fehlern ist vielleicht der häufigste Grund, eine Datei aus einem Commit in Git zu entfernen. Sie könnten beispielsweise mit einem Projekt in Verzug geraten sein und in der Eile versehentlich eine Debug-Protokolldatei zu Ihrem Commit hinzugefügt haben. Oder Sie haben nach dem Commit festgestellt, dass Sie eine Version einer Datei eingefügt haben, die nicht endgültig oder aktuell ist, sondern ein älteres WIP. Alternativ könnte die Datei etwas völlig Unerwünschtes oder Schädliches sein.
In solchen Situationen bewahrt das Löschen einer Datei aus einem Commit die Integrität Ihres Commit-Verlaufs und hält ihn frei von unnötigen oder potenziell schädlichen Dateien. Sie möchten sicherstellen, dass nur der beabsichtigte Inhalt in den endgültigen Entwurf gelangt.
Entfernen sensibler oder klassifizierter Daten
Es ist einfacher, als es scheint, versehentlich vertrauliche Daten zu übermitteln. Aber es ist ein Fehler, der schwerwiegende Folgen haben könnte. Beispielsweise sind API-Schlüssel heutzutage ein wichtiger Bestandteil vieler Codierungsprojekte, insbesondere angesichts des Aufkommens von KI und intensiverer Webintegration. Aber API-Schlüssel sind privat und müssen vor neugierigen Blicken geschützt werden. Sie könnten an einer neuen Funktion mithilfe einer API arbeiten und versehentlich eine Datei übermitteln, die den Schlüssel enthält, oder eine Konfigurationsdatei mit Datenbankanmeldeinformationen.
Diese Art von Versäumnis kann zu Sicherheitslücken führen und möglicherweise vertrauliche Informationen Unbefugten zugänglich machen. In solchen Szenarien geht das Entfernen der Datei aus dem Commit über eine einfache Fehlerkorrektur hinaus – es ist etwas, das Sie tun müssen, insbesondere wenn Sie als Teil eines Teams oder für ein Unternehmen arbeiten. Es ist, als ob Sie feststellen, dass Sie versehentlich ein vertrauliches Dokument in einem öffentlichen Ordner freigegeben haben, und es schnell an einen sicheren Ort verschieben.
Zu berücksichtigende Überlegungen
Manchmal ist das Löschen einer Datei aus einem Repository nicht so einfach, wie Sie es gerne hätten. Vermeiden Sie diese möglichen Probleme.
Repository-Konflikte
Das Entfernen von Dateien aus öffentlichen oder freigegebenen Commits ist nichts, was Sie einfach so tun sollten. Je nach Art der Datei und Projekttyp könnte dies die Mitglieder Ihres Teams erheblich frustrieren oder verwirren. Darüber hinaus verursacht es Konflikte zwischen ihren lokalen und den Remote-Repositorys. Sprechen Sie also vor dem Löschen einer Datei kurz mit Ihrem Team und erklären Sie ihnen, was Sie tun und warum.
Das kann ganz einfach sein, indem Sie eine Nachricht über die Chat-Plattform Ihres Teams senden oder das Thema in einem Stand-up-Meeting ansprechen. Bei dieser Vorwarnung geht es nicht nur darum, höflich zu sein. Sie ermöglicht Ihren Teammitgliedern, ihre Arbeit trotz Unterbrechung fortzusetzen. Außerdem öffnet sie die Tür für Feedback – vielleicht hat ein Teammitglied einen Grund, die Datei im Commit zu belassen, oder vielleicht hat er eine bessere Lösung für das vorliegende Problem.
Verlorene Daten
Wenn Sie Ihr Repository entrümpeln, möchten Sie nichts Wichtiges wegwerfen, insbesondere bei größeren Projekten. Bevor Sie also eine Datei löschen, werfen Sie einen zweiten oder sogar dritten Blick auf die Datei, die Sie entfernen möchten.
Fragen Sie sich: „Enthält diese Datei Code, Daten oder Informationen, die später benötigt werden könnten?“ Es ist, als würden Sie einen alten Ordner auf Ihrem Computer durchsehen. Manchmal finden Sie Dateien, die zu dem Zeitpunkt unwichtig erschienen, heute aber von Wert sind. Auf diese Weise geraten Sie nicht in eine Situation, in der Sie verzweifelt nach einem Code- oder Datenteil suchen müssen, den Sie vorher fälschlicherweise für unnötig hielten.
Revert ist besser für öffentliche Repositories
Beim Umgang mit öffentlichen Repositories ist es oft besser, „git revert“ als zerstörungsfreie Methode zu verwenden, um etwas aus dem Repository zu entfernen. Damit können Sie Änderungen auf transparente und nachvollziehbare Weise rückgängig machen, sodass Ihre Teammitglieder sie leicht nachvollziehen können.
Wenn Sie an Open-Source-Projekten oder anderen öffentlichen Gemeinschaftsprojekten arbeiten, bei denen Änderungen eine Vielzahl von Mitwirkenden betreffen können, sorgt dies für Übersichtlichkeit. Der Befehl „git revert“ erstellt im Wesentlichen ein neues Commit, das die Änderungen eines vorherigen Commits rückgängig macht, ohne den Projektverlauf zu verändern. Dies ist respektvoll gegenüber anderen Mitarbeitern und wahrt die Kontinuität und Integrität der Projektzeitleiste. Sie korrigieren offen einen Fehler in einem Gruppenprojekt und bewahren die Beiträge aller. Und der Projektverlauf bleibt intakt und für alle sichtbar und verständlich.
Halten Sie den Git-Verlauf sauber
Es passiert leicht, dass man versehentlich eine Datei in ein Git-Commit einfügt, die in einem Git-Commit nichts zu suchen hat. Glücklicherweise ist es auch einfach, diese Einfügung rückgängig zu machen. Je nachdem, was Sie möchten, gibt es verschiedene Möglichkeiten, dies zu erreichen. Denken Sie nur daran, Ihr Team im Auge zu behalten, wenn Sie ein Teammitglied sind, und halten Sie die lokalen und Remote-Repositorys konsistent.
Haben Sie schon einmal versehentlich eine falsche Datei in Ihr Git-Commit aufgenommen? Was war Ihre Lösung? Schreiben Sie unten einen Kommentar. Wir lesen sie immer gern.