Heim Lernen Wie man einzelne Dateien und Ordner in Git zurücksetzt

Wie man einzelne Dateien und Ordner in Git zurücksetzt

durch Frank
Wie man einzelne Dateien und Ordner in Git zurücksetzt

Einführung

Git ist ein hervorragendes Tool zum Verwalten jeder Version Ihrer Codebasis, und manchmal ist es erforderlich, die Zeit zurückzudrehen und ältere Versionen von Dateien wiederherzustellen. Git kann Änderungen an einer einzelnen Datei oder einem einzelnen Ordner rückgängig machen sowie komplette Commits zurückziehen oder das gesamte Repository zurücksetzen.

Auswahl zwischen Zurücksetzen und Zurücksetzen

Wenn Sie einen Commit „zurücksetzen“, wendet Git normalerweise einen neuen Commit mit den entgegengesetzten Änderungen an und löscht ihn im Wesentlichen. Dies ist praktisch, wenn Sie einen Fehler machen und einen Commit „entfernen“ müssen, selbst wenn er im Verlauf verbleibt.

Das Verfahren zum Zurücksetzen des Repositorys ist etwas anders. Sie können jeweils nur einen Commit zurückziehen, aber wenn Sie einen Git-Reset ausführen, setzt Git das Repository vollständig auf den Zeitpunkt zurück, an dem dieser Commit erstellt wurde. Dies geschieht aus einer Vielzahl von Gründen, von denen die häufigsten das Löschen von Commits oder das Korrigieren der Verzweigungshistorie sind.

Diese beiden Verfahren wirken sich auf das gesamte Repository aus, aber identische Befehle können verwendet werden, um dieselben Auswirkungen auf einzelne Dateien oder Ordner zu erzielen. Zum Beispiel das Ausführen von git reset auf einem Single Datei würde sie in den Zustand zurückversetzen, in dem sie sich befand, als der Commit erstellt wurde. Dies ist von Vorteil, wenn Sie nur eine ältere Version der Datei aus Ihrem Git-Verlauf auswählen möchten.

Untersuchen alter Git-Versionen

The low-tech approach to restoring a file to its original state is rather simple—Github and most other Git servers maintain track of your file history, and you can simply click on a commit and choose “Browse Files” to see a snapshot of your repository from the past. You may then either Laden Sie die Datei herunter oder kopieren Sie den Text.

Dies ist besonders praktisch, wenn Sie mit einer großen Anzahl von Codedateien arbeiten und frühere Versionen von Routinen, die Sie geschrieben haben, vergleichen möchten. In diesem Szenario möchten Sie wahrscheinlich nicht das Ganze umkehren, sondern nur eine Funktion. Ohne die Git-CLI zu berühren, können Sie den Code aus dieser Funktion kopieren.

Zurücksetzen einer Git-Datei auf eine alte Version

Wir haben in diesem Test-Repository einen Commit durchgeführt, der die README geändert und eine neue Datei hinzugefügt hat. Wir möchten die README-Änderungen rückgängig machen, aber wir möchten nicht das gesamte Repo auf den ersten Commit zurücksetzen.

Die Antwort ist, nur die README zurückzusetzen, indem Sie eine ältere Version dieser Datei herunterladen. Der Checkout-Befehl von Git kann eine Vielzahl von Dingen ausführen, z. B. das Wechseln von Branches, obwohl er häufig verwendet wird, um Daten basierend auf einem Commit oder einer Branch-ID herunterzuladen.

Um eine Datei in einer früheren Version wiederherzustellen, suchen Sie die Festschreibungs-ID, von der Sie sie wiederherstellen möchten. Sie können git log mit einer einzelnen Datei verwenden, um nur die Änderungen anzuzeigen, die an dieser Datei vorgenommen wurden:

git log README.md

Kopieren Sie die Commit-ID und führen Sie dann git checkout mit der ID und dem Dateipfad aus:

git checkout 22710694b25d7ce5297559851beb7d3e4de811bb README.md

Dadurch wird die Datei wieder geändert, aber die Änderungen werden noch nicht übernommen. Sie können Änderungen vornehmen und festlegen, wann Sie bereit sind.

In diesem Fall markierte git checkout die Änderungen als bereit für den nächsten Commit. Wenn Sie die Änderungen nicht übernehmen möchten, können Sie dies tun. Dies kann praktisch sein, um vorübergehend ältere Versionen von Dateien herunterzuladen, ohne Github zu verwenden.

Änderungen an einzelnen Dateien rückgängig machen

In ähnlicher Weise können Sie git revert verwenden, um die Änderungen rückgängig zu machen, die in einem einzigen Commit vorgenommen wurden. Es gibt keine Möglichkeit, es auf eine einzelne Datei anzuwenden, aber wenn sich der Commit auf andere Dateien auswirkt, lehnen Sie die Änderungen einfach ab.

Use the —no-commit switch to enable modification of the “revert commit” that Git generates automatically.

git revert de8564b131ca6a15a7e7c73f5ef156b119cc0b93

Auf diese Weise können Sie Änderungen an den Dateien vornehmen, bevor Sie die Stornierung abschließen. Wenn unerwünschte Änderungen inszeniert wurden, können Sie diese mit Ihrem Client oder einem leeren Git-Checkout löschen.

git checkout -- Datei

Sie können auch mögen

Navhow hat es sich zur Aufgabe gemacht, Menschen auf der ganzen Welt beizubringen, wie man alles macht.

 

Abonnieren

Der beste Ratgeber-Newsletter überall

©2022 Navhow, Alle Rechte vorbehalten