Zurücksetzen von Dateien auf den gleichen Zustand wie im Master-Zweig in Git

Ashok Chapagai 13 September 2023
  1. Dateien im Git-Zweig ‘master’ zurücksetzen
  2. Dateien auf einen bestimmten Commit in Git zurücksetzen
  3. Fazit
Zurücksetzen von Dateien auf den gleichen Zustand wie im Master-Zweig in Git

Angenommen, es gibt eine wichtige Datei im master-Zweig, die nicht bearbeitet werden sollte, aber leider wurde sie bereits mehrmals im dev-Zweig bearbeitet und bestätigt. Nun möchten Sie alle Änderungen an der Datei verwerfen und ihren Zustand auf den gleichen wie im master-Zweig ändern. Es gibt eine einfache Möglichkeit, dies ohne großen Aufwand zu erreichen.

Dateien im Git-Zweig ‘master’ zurücksetzen

In Git ist der Befehl git checkout ein vielseitiges Werkzeug, das für verschiedene Aufgaben verwendet wird, einschließlich des Wechsels zwischen Zweigen, des Erstellens neuer Zweige, der Wiederherstellung von Dateien und mehr.

Wenn wir git checkout verwenden, um Dateien auf den master-Zweig zurückzusetzen, sagen wir Git im Wesentlichen, dass es den Inhalt der Dateien in unserem aktuellen Zweig mit denen aus dem master-Zweig ersetzen soll.

Nun, da wir ein grundlegendes Verständnis von Git Checkout haben, gehen wir die Schritte durch, um bestimmte Dateien auf den master-Zweig zurückzusetzen.

Schritt 1: Terminal öffnen

Um zu beginnen, öffnen Sie Ihr Terminal oder die Eingabeaufforderung. Wir werden Git-Befehle verwenden, um Dateien zurückzusetzen, daher ist ein Terminal unerlässlich.

Schritt 2: Zum Repository navigieren

Verwenden Sie den Befehl cd, um zum Verzeichnis Ihres Git-Repositories zu navigieren. Zum Beispiel:

cd /path/to/your/repo

Ersetzen Sie /pfad/zum/ihre/repo durch den tatsächlichen Pfad zu Ihrem Git-Repository.

Schritt 3: Aktuellen Zweig überprüfen

Bevor Sie einen Reset durchführen, stellen Sie sicher, dass Sie sich auf dem Zweig befinden, von dem Sie Dateien zurücksetzen möchten. Sie können Ihren aktuellen Zweig mit dem folgenden Befehl überprüfen:

git branch

Dieser Befehl zeigt eine Liste der Zweige an, wobei der aktuell ausgecheckte Zweig mit einem Sternchen (*) markiert ist.

Schritt 4: Git Checkout Reset durchführen

Jetzt verwenden wir den Befehl git checkout, um Dateien auf den master-Zweig zurückzusetzen. Verwenden Sie den folgenden Befehl:

git checkout master -- file1 file2 ...

Ersetzen Sie datei1, datei2, usw. durch die Namen der Dateien, die Sie zurücksetzen möchten. Sie können mehrere Dateien angeben, indem Sie ihre Namen mit Leerzeichen trennen.

Wenn Sie zum Beispiel zwei Dateien mit den Namen datei1.txt und datei2.txt zurücksetzen möchten, lautet der Befehl:

git checkout master -- file1.txt file2.txt

Ein genauerer Blick auf den git checkout-Befehl

  • git checkout: Dies ist der Git-Befehl, der für verschiedene Operationen verwendet wird, einschließlich des Wechsels zwischen Zweigen und dem Zurücksetzen von Dateien.
  • master: Das gibt den Quellzweig an, von dem Sie die Dateien nehmen möchten. In diesem Fall ist es der master-Zweig.
  • --: Dieser doppelte Bindestrich wird verwendet, um den Zweig oder Commit von den Dateipfaden zu trennen. Er teilt Git mit, dass die folgenden Elemente Dateipfade und keine Zweige oder Commits sind.

Schritt 5: Status überprüfen

Nach dem Reset ist es eine gute Praxis, den Status Ihres Arbeitsverzeichnisses mit folgendem Befehl zu überprüfen:

git status

Dies zeigt Ihnen, welche Dateien im Vergleich zum master-Zweig geändert, hinzugefügt oder gelöscht wurden.

Schritt 6: Änderungen bestätigen

Wenn Sie mit den Änderungen zufrieden sind und bereit zum Bestätigen sind, verwenden Sie die folgenden Befehle:

git add .
git commit -m "Your commit message"

Ersetzen Sie "Ihre Commit-Nachricht" durch eine aussagekräftige Nachricht, die Ihre Änderungen beschreibt.

Dateien auf einen bestimmten Commit in Git zurücksetzen

In Git wird der Befehl git reset verwendet, um den aktuellen Zweig auf einen bestimmten Zustand zurückzusetzen, z. B. auf einen bestimmten Commit.

Wenn wir git reset verwenden, um Dateien auf einen bestimmten Commit zurückzusetzen, geben wir Git an, den Zweigzeiger auf diesen Commit zu verschieben und optional auch das Arbeitsverzeichnis und den Zwischenspeicher (Index) zu aktualisieren.

Lassen Sie uns die Schritte durchgehen, um bestimmte Dateien auf einen bestimmten Commit in Git zurückzusetzen.

Schritt 1: Terminal öffnen

Beginnen Sie, indem Sie Ihr Terminal oder die Eingabeaufforderung öffnen. Wir werden Git-Befehle verwenden, daher ist ein Terminal unerlässlich.

Schritt 2: Zum Repository navigieren

Verwenden Sie den Befehl cd, um zum Verzeichnis Ihres Git-Repositories zu navigieren. Zum Beispiel:

cd /path/to/your/repo

Ersetzen Sie /pfad/zum/ihre/repo durch den tatsächlichen Pfad zu Ihrem Git-Repository.

Schritt 3: Zielcommit identifizieren

Sie müssen den spezifischen Commit identifizieren, auf den Sie Ihre Dateien zurücksetzen möchten. Sie können git log verwenden, um die Commit-Historie anzuzeigen und den Commit-Hash zu finden. Zum Beispiel:

git log

Dieser Befehl zeigt die Commit-Historie an, wobei jeder Commit durch einen eindeutigen Hash (eine lange alphanumerische Zeichenkette) identifiziert wird.

Schritt 4: Git-Reset durchführen

Jetzt verwenden wir den Befehl git reset, um bestimmte Dateien auf den Zielcommit zurückzusetzen. Die grundlegende Syntax lautet wie folgt:

git reset <commit> -- <file1> <file2> ...

Ersetze <commit> durch den Commit-Hash, den Branch-Namen oder den Tag-Namen, auf den du zurücksetzen möchtest. Ersetze <file1>, <file2> und so weiter durch die Namen der Dateien, die du zurücksetzen möchtest. Du kannst mehrere Dateien angeben, indem du ihre Namen mit Leerzeichen trennst.

Zum Beispiel, wenn du zwei Dateien mit den Namen file1.txt und file2.txt auf einen Commit mit dem Hash abc123 zurücksetzen möchtest, wäre der Befehl wie folgt:

git reset abc123 -- file1.txt file2.txt

Ein genauerer Blick auf den Befehl git reset

  • git reset: Dies ist der Git-Befehl, der zum Zurücksetzen von Branches und Dateien verwendet wird.
  • <commit>: Ersetze diesen Platzhalter durch den Commit-Hash, den Branch-Namen oder den Tag-Namen, auf den du deine Dateien zurücksetzen möchtest.
  • --: Dieser doppelte Bindestrich wird verwendet, um den Commit von den Dateipfaden zu trennen. Er teilt Git mit, dass es sich bei den folgenden Elementen um Dateipfade handelt, nicht um Branches oder Commits.

Schritt 5: Überprüfe den Status

Nach dem Zurücksetzen ist es wichtig, den Status deines Arbeitsverzeichnisses mit folgendem Befehl zu überprüfen:

git status

Dies zeigt an, welche Dateien im Vergleich zum zurückgesetzten Commit geändert, hinzugefügt oder gelöscht wurden.

Schritt 6: Commite deine Änderungen

Wenn du mit dem Zurücksetzen zufrieden bist und bereit zum Commit bist, verwende die folgenden Befehle:

git add .
git commit -m "Your commit message"

Ersetze "Deine Commit-Nachricht" durch eine aussagekräftige Nachricht, die die durch das Zurücksetzen eingeführten Änderungen beschreibt.

Alternative: Verwende git checkout

Eine alternative Möglichkeit, dieselbe Aufgabe zu erledigen, ist folgender Befehl:

git checkout <commit_hash> <filename>

Dies hilft ebenfalls, dasselbe Ergebnis zu erzielen.

Fazit

Das Zurücksetzen von Dateien auf den master-Branch in Git ist eine grundlegende Fähigkeit für jeden Entwickler, der an gemeinsamen Projekten arbeitet.

Der Befehl git checkout ermöglicht es dir, deine Arbeit mühelos mit den neuesten Änderungen im master-Branch zu synchronisieren.

Indem du den in diesem Leitfaden beschriebenen Schritten folgst, kannst du sicher bestimmte Dateien zurücksetzen und sicherstellen, dass dein Projekt konsistent und aktuell bleibt.

Denke daran, dass Git verschiedene Mechanismen zum Zurücksetzen von Dateien bietet, wie z.B. git reset zum Zurücksetzen auf spezifische Commits.

Jede Methode hat ihre Anwendungsfälle, also wähle diejenige aus, die am besten zu deinen Bedürfnissen passt.

Ob du Fehler korrigierst oder Änderungen aus dem master-Branch einfügst, die Flexibilität von Git gewährleistet effiziente und zuverlässige Versionierung.

Ashok Chapagai avatar Ashok Chapagai avatar

Ashok is an avid learner and senior software engineer with a keen interest in cyber security. He loves articulating his experience with words to wider audience.

LinkedIn GitHub

Verwandter Artikel - Git Reset