Machen Sie lokale Änderungen an einer einzelnen Datei in Git rückgängig
- Rollback einer zuvor festgeschriebenen Datei in Git
- Machen Sie Änderungen an bereitgestellten und nicht bereitgestellten Dateien in Git rückgängig
-
den
git restore
-Befehl
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.
- Arbeitsbaum
- Bereitstellungsbereich
- 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.
-
Machen Sie eine Änderung am Repo rückgängig
$ git restore --source [commit id] path/to/file
-
Unstage eine Datei
$ git restore --staged path/to/file
-
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 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.
LinkedInVerwandter Artikel - Git Checkout
- Checken Sie einen Remote-Git-Zweig aus
- Git Checkout VS Pull
- Ignorieren Sie lokale Dateiänderungen in Git
- Rollback zu einem alten Commit in einem öffentlichen Git-Repository
- Unterschied zwischen Git Checkout --Track Origin/Branch und Git Checkout -B Branch Origin/Branch
- Unterschied zwischen Git Checkout und Git Clone