Machen Sie lokale Änderungen an einer einzelnen Datei in Git rückgängig

John Wachira 30 Januar 2023
  1. Rollback einer zuvor festgeschriebenen Datei in Git
  2. Machen Sie Änderungen an bereitgestellten und nicht bereitgestellten Dateien in Git rückgängig
  3. den git restore-Befehl
Machen Sie lokale Änderungen an einer einzelnen Datei in Git rückgängig

In diesem Artikel werden wir diskutieren, wie wir Befehle wie git checkout und git reset verwenden können, um unsere Dateien auf eine Version zurückzusetzen, die uns gefällt. Obwohl Git das Zurücksetzen von Dateien und Repositories einfach macht, ist das Konzept, Änderungen in Git rückgängig zu machen, etwas komplizierter, als Sie vielleicht denken.

Das Rückgängigmachen von Änderungen in einem Repo unterscheidet sich vom Rückgängigmachen von Änderungen an einer Reihe von Dateien, an denen Sie lokal arbeiten.

Die Befehle git checkout, git reset und git restore sind praktisch, wenn Sie Dateien auf eine frühere Version zurücksetzen möchten. Aber bevor wir uns mit diesen Befehlen befassen, müssen wir uns fragen; Was bedeutet das Zurücksetzen einer Datei?

Es ist erwähnenswert, dass das Zurücksetzen einer Datei unter verschiedenen Umständen für Sie unterschiedlich sein kann. Möglicherweise stellen Sie fest, dass ein git checkout-Befehl nicht Ihren Erwartungen entspricht.

Es ist anders für Personen, die bereits festgeschriebene Änderungen rückgängig machen möchten, und für Personen, die Änderungen rückgängig machen möchten, damit die Datei mit dem Repo synchronisiert wird.

Hier sind einige Begriffe, auf die Sie achten sollten, um die Unterschiede zu verstehen.

  1. Arbeitsbaum
  2. Bereitstellungsbereich
  3. Aufbewahrungsort

Rollback einer zuvor festgeschriebenen Datei in Git

Ein häufiger Fall ist, dass wir eine Datei festgeschrieben haben und die Änderungen rückgängig machen möchten. In einem solchen Szenario verwenden wir den Befehl git checkout.

Wir haben den Befehl zuvor verwendet, um Zweige zu wechseln, aber das ist nur ein Teil dessen, was er tun kann.

Wir können den Befehl verwenden, um Änderungen an einer Datei rückgängig zu machen, die wir bereits festgeschrieben haben. Es gleicht die Dateien in unserem Arbeitsbaum mit der Datei an jedem Punkt in der Historie unseres Repos ab.

Wir können eine Verzweigung, ein Tag und ein Commit angeben.

Unten ist der beste Weg, um den Befehl auszuführen.

$ git checkout [commit ID] -- path/to/file

Wenn Sie den obigen Befehl ausführen, verweisen wir Git auf eine bestimmte Commit-ID in unserem Repository. Außerdem haben wir den Pfad zu einer einzelnen Datei hinzugefügt.

Wenn Sie den obigen Befehl ausführen, wird nur die Datei in unserem Arbeitsbaum aktualisiert. Wir müssen die Datei bereitstellen und einen neuen Commit durchführen.

Machen Sie Änderungen an bereitgestellten und nicht bereitgestellten Dateien in Git rückgängig

Unser Staging-Bereich enthält die Dateien, die wir übergeben möchten. Um Änderungen in einer bereitgestellten Datei rückgängig zu machen, führen Sie den Befehl git reset aus, um die Bereitstellung aufzuheben.

$ git reset HEAD path/to/file

Wir führen den folgenden Befehl aus, um lokale Änderungen rückgängig zu machen, bevor eine Datei bereitgestellt wird.

$ git checkout -- path/to/file

Der Befehl ähnelt unserem ersten, außer dass er unsere Commit-ID weglässt.

den git restore-Befehl

Neuere Versionen von Git erlauben es uns, den Befehl git restore zu verwenden, um Änderungen an einer einzelnen Datei rückgängig zu machen.

Hier sind einige der Möglichkeiten, wie wir den Befehl verwenden können.

  1. Machen Sie eine Änderung am Repo rückgängig

    $ git restore --source [commit id] path/to/file
    
  2. Unstage eine Datei

    $ git restore --staged path/to/file
    
  3. Machen Sie Änderungen an einer Arbeitskopie rückgängig

    $ git restore path/to/file
    

Wir sehen uns oft dabei, Commits zurückzusetzen, anstatt eine einzelne Datei zurückzusetzen. Wenn Sie jedoch müssen, ist es ziemlich einfach.

John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Verwandter Artikel - Git Checkout