Als Software zur Versionskontrolle macht es Git vorhersehbar einfach, Änderungen rückgängig zu machen. Aber selbst das Konzept, eine Änderung rückgängig zu machen, ist komplizierter, als Sie zunächst denken. Ein Git-Repository ist nicht ganz dasselbe wie der Satz von Dateien, an dem Sie lokal arbeiten. Änderungen rückgängig machen bedeutet, genau zu überlegen, wo Sie sie rückgängig machen möchten.

gitAuschecken, git zurücksetzen, und gitwiederherstellen sind Befehle, mit denen Sie nicht nur Ihre Codebasis, sondern auch einzelne Dateien auf eine frühere Version zurücksetzen können. Lernen Sie die Details dieser Befehle kennen und Sie werden in kürzester Zeit wie ein Experte durch Ihren Dateiverlauf springen.

Was bedeutet das Zurücksetzen einer Datei überhaupt?

Es ist wichtig zu beachten, dass das Zurücksetzen einer Datei für verschiedene Personen unter verschiedenen Umständen unterschiedliche Bedeutungen haben kann. Auch der git zurücksetzen Befehl entspricht möglicherweise nicht Ihren Erwartungen bezüglich der Bedeutung des Zurücksetzens.

instagram viewer

Manchmal möchten Sie lokale Änderungen rückgängig machen, damit eine Datei wieder mit dem aktuellen Repository synchronisiert ist. In anderen Fällen möchten Sie möglicherweise Änderungen rückgängig machen, die Sie bereits in das Repository übernommen haben.

Die folgenden Begriffe sind der Schlüssel zum Verständnis des Unterschieds: Arbeitsbaum, Staging-Bereich und Repository. Die Dateien, die Sie lokal bearbeiten, gehören zum Arbeitsbaum. Dateien, die Sie festschreiben, landen letztendlich im Repository. Wenn Sie Änderungen erfassen, stellen Sie Dateien bereit. Eine Datei kann an jedem dieser Speicherorte unterschiedliche Inhalte haben.

Siehe auch: Git-Tutorial für Fortgeschrittene

Sie können sich das Zurücksetzen einer Datei als Rückgängigmachen von Änderungen vorstellen. Der Status Ihrer Datei bestimmt jedoch, welche Änderungen Sie tatsächlich rückgängig machen. Der offensichtliche Fall ist, dass Sie einige Änderungen vornehmen, diese festschreiben und später entscheiden, dass Sie sie nicht mehr möchten.

Ein anderer Fall könnte sein, dass Sie eine Datei bereitgestellt haben und sie jetzt wieder aufheben möchten.

Wie mache ich ein Rollback für eine zuvor übergebene Datei?

Lassen Sie uns einen leichter verständlichen Fall behandeln: Sie haben eine Datei festgeschrieben und möchten nun die Änderungen daran rückgängig machen.

Der Git-Befehl dazu heißt etwas unintuitiv: Auschecken. Sie könnten verwendet haben Auschecken bevor Sie Zweige wechseln, aber das ist nur ein kleiner Teil dessen, was der Befehl tun kann. Es ermöglicht Ihnen auch, Dateien in Ihrem Arbeitsbaum zu aktualisieren, damit sie zu jedem Zeitpunkt im Verlauf des Repositorys mit denen übereinstimmen. Sie können dies für ein bestimmtes Tag, einen Branch oder sogar einen bestimmten Commit tun.

Die nützlichste Allzweckform dieses Befehls ist:

git checkout [commit ID] -- Pfad/zu/Datei

Hier passieren wir einen bestimmten Pfad (Pfad/zu/Datei), die nur eine einzelne Datei identifiziert. Wir geben auch eine Commit-ID an, um die Datei so abzurufen, wie sie bei diesem bestimmten Commit vorhanden war. Dieser Befehl aktualisiert nur die Datei in unserem Arbeitsbaum.

Beachten Sie, dass das Auschecken einer früheren Version der Datei die Arbeitskopie ändert, ohne sie festzuschreiben oder sogar bereitzustellen. Um das Rückgängigmachen des Repositorys vollständig abzuschließen, müssen Sie die Datei bereitstellen und einen neuen Commit erstellen.

Siehe auch: So überprüfen Sie den Verlauf eines Projekts mit git log

Wie ändere ich, was ich inszeniere?

Die andere Art des Rückgängigmachens betrifft Ihren Staging-Bereich. Dies enthält die Änderungen, die Sie neben dem Repository übernehmen. Wenn Sie eine Version einer Datei bereitgestellt haben und später entscheiden, dass Sie sie nicht in den nächsten Commit einschließen möchten, sollten Sie sie zuerst aufheben.

Du kannst den... benutzen git zurücksetzen Befehl, um eine bereitgestellte Datei aufzuheben:

git setze HEAD-Pfad/zu/Datei zurück

Kann ich lokale Änderungen schnell rückgängig machen?

Ja, Sie können Änderungen an einer lokalen Datei rückgängig machen, bevor sie bereitgestellt wird. Verwenden Sie den folgenden Befehl:

git checkout -- Pfad/zu/Datei

Beachten Sie, dass dies dem Rollback einer Repository-Änderung ähnelt, es wird nur die Commit-ID weggelassen. Sobald Sie diesen Befehl ausführen, macht Git alle Änderungen an Ihrer Arbeitskopie rückgängig.

Was ist mit Git Restore?

Spätere Versionen von Git haben einen neueren Befehl: wiederherstellen. Für die einfachen Fälle, die wir hier besprochen haben, können Sie die folgenden Äquivalente verwenden. So machen Sie eine Änderung am Repository rückgängig:

git restore --source [commit id] Pfad/zu/Datei

Um eine Datei aufzuheben, verwenden Sie:

git restore --staged path/to/file

Und um Änderungen an der Arbeitskopie rückgängig zu machen:

git wiederherstellen Pfad/zu/Datei

Die Versionierungskraft von Git zu beherrschen ist von unschätzbarem Wert

Obwohl das Zurücksetzen einer Datei wie üblich erscheinen mag, werden Sie feststellen, dass dies in der Praxis ziemlich selten vorkommt. Es ist wahrscheinlicher, dass Sie ganze Commits zurücksetzen, anstatt einzelne Dateien. In den Fällen, in denen dies erforderlich ist, macht Git es jedoch zumindest ziemlich einfach.

So entfernen Sie eine Datei aus dem Commit in Git

Verwenden Sie diese Git-Befehle, um Vorgänge wie das Entfernen einer Datei aus einem Commit durchzuführen.

Weiter lesen

TeilenTweetEmail
Verwandte Themen
  • Programmierung
  • GitHub
  • Web Entwicklung
  • Programmierung
Über den Autor
Bobby Jack (63 veröffentlichte Artikel)

Bobby ist ein Technologie-Enthusiast, der fast zwei Jahrzehnte als Software-Entwickler gearbeitet hat. Er hat eine Leidenschaft für Spiele, arbeitet als Chefredakteur beim Switch Player Magazine und ist in alle Aspekte des Online-Publishing und der Webentwicklung vertieft.

Mehr von Bobby Jack

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um zu abonnieren