Einrichtung und Konfiguration
Projekte holen und erstellen
Grundlegende Snapshots
Branching und Merging
Projekte teilen und aktualisieren
Inspektion und Vergleich
Patching
Debugging
Externe Systeme
Server-Administration
Anleitungen
- gitattributes
- Konventionen der Kommandozeile
- Tägliches Git
- Häufig gestellte Fragen (FAQ)
- Glossar
- Hooks
- gitignore
- gitmodules
- Revisionen
- Submodule
- Tutorial
- Workflows
- Alle Anleitungen...
Administration
Plumbing-Befehle
- 2.50.1 → 2.52.0 keine Änderungen
-
2.50.0
2025-06-16
- 2.44.1 → 2.49.1 keine Änderungen
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 keine Änderungen
-
2.43.0
2023-11-20
- 2.39.1 → 2.42.4 keine Änderungen
-
2.39.0
2022-12-12
- 2.38.1 → 2.38.5 keine Änderungen
-
2.38.0
2022-10-02
- 2.37.1 → 2.37.7 keine Änderungen
-
2.37.0
2022-06-27
- 2.30.1 → 2.36.6 keine Änderungen
-
2.30.0
2020-12-27
- 2.27.1 → 2.29.3 keine Änderungen
-
2.27.0
2020-06-01
- 2.23.1 → 2.26.3 keine Änderungen
-
2.23.0
2019-08-16
- 2.22.1 → 2.22.5 keine Änderungen
-
2.22.0
2019-06-07
- 2.10.5 → 2.21.4 keine Änderungen
-
2.9.5
2017-07-30
- 2.8.6 keine Änderungen
-
2.7.6
2017-07-30
-
2.6.7
2017-05-05
- 2.1.4 → 2.5.6 keine Änderungen
-
2.0.5
2014-12-17
SYNOPSIS
git revert [--[no-]edit] [-n] [-m <parent-number>] [-s] [-S[<keyid>]] <commit>…
git revert (--continue | --skip | --abort | --quit)
BESCHREIBUNG
Revertieren Sie die durch die jeweiligen Patches eingeführten Änderungen, indem Sie einen oder mehrere bestehende Commits angeben, und erstellen Sie neue Commits, die diese Revertierungen festhalten. Dies erfordert, dass Ihr Arbeitsverzeichnis sauber ist (keine Änderungen gegenüber dem HEAD-Commit).
Hinweis: git revert wird verwendet, um neue Commits zu erstellen, die die Auswirkung früherer Commits (oft nur eines fehlerhaften) aufheben. Wenn Sie alle unbestätigten Änderungen in Ihrem Arbeitsverzeichnis verwerfen möchten, sollten Sie git-reset[1], insbesondere die Option --hard, konsultieren. Wenn Sie bestimmte Dateien so extrahieren möchten, wie sie in einem anderen Commit waren, sollten Sie git-restore[1], insbesondere die Option --source, konsultieren. Seien Sie vorsichtig mit diesen Alternativen, da beide unbestätigte Änderungen in Ihrem Arbeitsverzeichnis verwerfen.
Siehe "Zurücksetzen, Wiederherstellen und Rückgängigmachen" in git[1] für die Unterschiede zwischen den drei Befehlen.
OPTIONEN
- <commit>…
-
Zu revertierende Commits. Eine vollständigere Liste der Möglichkeiten, Commit-Namen anzugeben, finden Sie in gitrevisions[7]. Es können auch Commit-Gruppen angegeben werden, standardmäßig erfolgt jedoch keine Traversierung. Sehen Sie git-rev-list[1] und seine Option
--no-walk. - -e
- --edit
-
Mit dieser Option lässt git revert die Commit-Nachricht bearbeiten, bevor der Revert-Commit erstellt wird. Dies ist das Standardverhalten, wenn der Befehl von einem Terminal aus ausgeführt wird.
- -m <parent-number>
- --mainline <parent-number>
-
Normalerweise können Sie einen Merge-Commit nicht revertieren, da Sie nicht wissen, welche Seite des Merges als Hauptlinie betrachtet werden soll. Diese Option gibt die Elternnummer (beginnend bei 1) der Hauptlinie an und ermöglicht es revert, die Änderung relativ zum angegebenen Elternteil rückgängig zu machen.
Das Revertieren eines Merge-Commits erklärt, dass Sie niemals die durch den Merge eingeführten Baumänderungen wünschen werden. Folglich werden spätere Merges nur Baumänderungen einbringen, die durch Commits eingeführt wurden, die keine Vorfahren des zuvor revertierten Merges sind. Dies ist möglicherweise nicht das, was Sie wollen.
Weitere Details finden Sie im How-To: Revertieren eines fehlerhaften Merges.
- --no-edit
-
Mit dieser Option startet git revert den Commit-Nachrichten-Editor nicht.
- --cleanup=<mode>
-
Diese Option bestimmt, wie die Commit-Nachricht bereinigt wird, bevor sie an die Commit-Maschine übergeben wird. Weitere Details finden Sie in git-commit[1]. Insbesondere, wenn dem <mode> der Wert
scissorszugewiesen wird, werden Scheren anMERGE_MSGangehängt, bevor sie im Falle eines Konflikts übergeben werden. - -n
- --no-commit
-
Normalerweise erstellt der Befehl automatisch einige Commits mit Commit-Log-Nachrichten, die angeben, welche Commits revertiert wurden. Dieses Flag wendet die notwendigen Änderungen, um die benannten Commits rückgängig zu machen, auf Ihr Arbeitsverzeichnis und den Index an, erstellt aber keine Commits. Außerdem muss Ihr Index nicht mit dem HEAD-Commit übereinstimmen, wenn diese Option verwendet wird. Die Revertierung erfolgt gegen den Anfangszustand Ihres Index.
Dies ist nützlich, wenn Sie die Auswirkungen von mehr als einem Commit in Folge auf Ihren Index revertieren.
- -S[<keyid>]
- --gpg-sign[=<keyid>]
- --no-gpg-sign
-
GPG-sign Commits. Das Argument
keyidist optional und standardmäßig die Committer-Identität; wenn es angegeben wird, muss es ohne Leerzeichen an die Option angehängt werden.--no-gpg-signist nützlich, um sowohl die Konfigurationsvariablecommit.gpgSignals auch einen früheren Befehl--gpg-signzu überschreiben. - -s
- --signoff
-
Fügt am Ende der Commit-Nachricht einen
Signed-off-by-Trailer hinzu. Weitere Informationen finden Sie in der Option signoff in git-commit[1]. - --strategy=<strategy>
-
Verwendet die angegebene Merge-Strategie. Sollte nur einmal verwendet werden. Details finden Sie im Abschnitt MERGE STRATEGIES in git-merge[1].
- -X<option>
- --strategy-option=<option>
-
Übergibt die strategie-spezifische Merge-Option an die Merge-Strategie. Details finden Sie in git-merge[1].
--rerere-autoupdate--no-rerere-autoupdate-
Nachdem der rerere-Mechanismus eine aufgezeichnete Auflösung für den aktuellen Konflikt wiederverwendet hat, um die Dateien im Arbeitsbaum zu aktualisieren, erlauben Sie ihm auch, den Index mit dem Ergebnis der Auflösung zu aktualisieren.
--no-rerere-autoupdateist eine gute Möglichkeit, zu überprüfen, wasrereregetan hat, und potenzielle Fehlmerges zu erkennen, bevor das Ergebnis mit einem separatengitaddin den Index übernommen wird. - --reference
-
Anstatt den Hauptteil der Log-Nachricht mit "This reverts <full-object-name-of-the-commit-being-reverted>." zu beginnen, verweisen Sie auf den Commit im Format "--pretty=reference" (vgl. git-log[1]). Die Konfigurationsvariable
revert.referencekann verwendet werden, um diese Option standardmäßig zu aktivieren.
SEQUENCER SUBCOMMANDS
- --continue
-
Setzt die laufende Operation mit den Informationen in
.git/sequencerfort. Kann verwendet werden, um nach der Auflösung von Konflikten bei einem fehlgeschlagenen Cherry-Pick oder Revert fortzufahren. - --skip
-
Überspringt den aktuellen Commit und fährt mit dem Rest der Sequenz fort.
- --quit
-
Vergisst die aktuelle laufende Operation. Kann verwendet werden, um den Sequenzerzustand nach einem fehlgeschlagenen Cherry-Pick oder Revert zu löschen.
- --abort
-
Bricht die Operation ab und kehrt zum Zustand vor der Sequenz zurück.
BEISPIELE
gitrevertHEAD~3-
Revertiert die Änderungen, die durch den viertletzten Commit in HEAD angegeben sind, und erstellt einen neuen Commit mit den revertierten Änderungen.
gitrevert-nmaster~5..master~2-
Revertiert die Änderungen, die durch die Commits vom fünftletzten Commit in master (einschließlich) bis zum drittletzten Commit in master (einschließlich) vorgenommen wurden, erstellt aber keine Commits mit den revertierten Änderungen. Die Revertierung modifiziert nur das Arbeitsverzeichnis und den Index.
DISKUSSION
Obwohl Git automatisch eine grundlegende Commit-Nachricht erstellt, wird dringend empfohlen, zu erklären, warum der ursprüngliche Commit revertiert wird. Darüber hinaus führen wiederholte Revertierungen zu immer unhandlicheren Betreffzeilen, z. B. Reapply "Reapply "<original-subject>"". Bitte erwägen Sie, diese zu kürzeren und eindeutigeren zu ändern.
KONFIGURATION
Alles unterhalb dieser Zeile in diesem Abschnitt wird selektiv aus der git-config[1]-Dokumentation übernommen. Der Inhalt ist derselbe wie dort zu finden.
GIT
Teil der git[1] Suite