Ich habe versehentlich die falschen Dateien auf Git festgeschrieben , aber das Festschreiben habe ich noch nicht auf den Server übertragen.
Wie kann ich diese Commits aus dem lokalen Repository rückgängig machen?
git
version-control
git-commit
undo
pre-commit
Peter Mortensen
quelle
quelle
git undo
, das ist es. Dann verschwindet der Ruf, den Git für den Umgang mit Fehlern hat, die wir bloßen Sterblichen gemacht haben. Implementieren Sie dies, indem Sie den aktuellen Status auf einen Git-Stack verschieben, bevor Sie einengit
Befehl ausführen . Dies würde sich auf die Leistung auswirken. Fügen Sie daher am besten ein Konfigurationsflag hinzu, um festzustellen, ob es aktiviert werden soll.alias
Funktion gemacht werden: git-scm.com/book/en/v2/Git-Basics-Git-Aliasesgit reflog
es bereits nahe an dem liegt, was Sie beschreiben, dem Benutzer jedoch mehr Kontrolle darüber gibt, was (nicht) getan werden soll. Aber bitte, nein, "Rückgängig" funktioniert nicht überall gleich, und die Leute würden erwarten, dass das Feature viele verschiedene Dinge erreicht. Letztes Commit rückgängig machen? Letzte Aktion rückgängig machen? Wenn die letzte Aktion ein Push war, machen Sie wie genau rückgängig (Zurücksetzen und Drücken) oder (Zurücksetzen und Drücken)?Antworten:
Machen Sie ein Commit rückgängig und wiederholen Sie es
git status
, so dass Sie brauchen werden vor dem Festschreiben erneut hinzufügen). Wenn Sie dem vorherigen Commit nur weitere Änderungen hinzufügen oder die Commit-Nachricht 1 ändern möchten , können Siegit reset --soft HEAD~
stattdessengit reset HEAD~
2 verwenden , wobei Ihre vorhandenen Änderungen beibehalten werden.git add
alles, was Sie in Ihr neues Commit aufnehmen möchten.reset
kopierte den alten Kopf nach.git/ORIG_HEAD
;commit
with-c ORIG_HEAD
öffnet einen Editor, der zunächst die Protokollnachricht aus dem alten Commit enthält und Sie bearbeiten können. Wenn Sie die Nachricht nicht bearbeiten müssen, können Sie die-C
Option verwenden.Beachten Sie jedoch, dass wenn Sie dem Index neue Änderungen hinzugefügt haben
commit --amend
, diese mit Ihrem vorherigen Commit hinzugefügt werden .Wenn der Code bereits auf Ihren Server übertragen wurde und Sie die Berechtigung zum Überschreiben des Verlaufs (Rebase) haben, gehen Sie wie folgt vor:
Sie können sich auch diese Antwort ansehen:
Wie kann ich HEAD an einen früheren Ort zurückversetzen? (Abgenommener Kopf) & Commits rückgängig machen
Die obige Antwort zeigt Ihnen,
git reflog,
welche verwendet wird, um herauszufinden, was der SHA-1 ist, den Sie zurücksetzen möchten. Sobald Sie den Punkt gefunden haben, zu dem Sie rückgängig machen möchten, verwenden Sie die oben erläuterte Befehlsfolge.1 Beachten Sie jedoch, dass Sie nicht auf ein früheres Commit zurücksetzen müssen, wenn Sie gerade einen Fehler in Ihrer Commit-Nachricht gemacht haben . Die einfachere Option besteht darin,
git reset
(seitdem vorgenommene Änderungen aufzuheben) und danngit commit --amend
Ihren Standard-Editor für Festschreibungsnachrichten zu öffnen , der mit der letzten Festschreibungsnachricht gefüllt ist .2
HEAD~
ist das gleiche wieHEAD~1
. Siehe auch Was ist der KOPF in Git? . Dies ist hilfreich, wenn Sie mehrere Commits aufheben möchten.quelle
git checkout theRightBranch
mit allen Änderungsstufen. Da musste ich einfach machen.git reset --soft HEAD^
verwendengit reset --soft HEAD~1
. Das ^ ist ein Fortsetzungszeichen in DOS, daher funktioniert es nicht richtig. Dies--soft
ist auch die Standardeinstellung, sodass Sie sie weglassen können, wenn Sie möchten und einfach sagengit reset HEAD~1
.zsh: no matches found: HEAD^
- Sie müssen entkommen ^ iegit reset --soft HEAD\^
git commit -a
ausgegeben wurde, als die-a
hätte weggelassen werden sollen. In diesem Fall ist es besser, das nicht auszulassen--soft
(was dazu führt, dass--mixed
dies die Standardeinstellung ist), und dann können Sie die Änderungen, die Sie festschreiben wollten, wiederherstellen.git add [--verbose | -v] [--dry-run | -n] [--force | -f] [--interactive | -i] [--patch | -p] [--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]] [--intent-to-add | -N] [--refresh] [--ignore-errors] [--ignore-missing] [--chmod=(+|-)x] [--] [<pathspec>…]
Das Rückgängigmachen eines Commits ist etwas beängstigend, wenn Sie nicht wissen, wie es funktioniert. Aber es ist tatsächlich erstaunlich einfach, wenn Sie verstehen.
Angenommen, Sie haben dies, wobei C Ihr KOPF und (F) der Status Ihrer Dateien ist.
Sie möchten Commit C nuklearisieren und es nie wieder sehen und alle Änderungen in lokal geänderten Dateien verlieren . Du machst das:
Das Ergebnis ist:
Jetzt ist B der KOPF. Da Sie verwendet haben
--hard
, werden Ihre Dateien beim Festschreiben B auf ihren Status zurückgesetzt.Ah, aber nehmen wir an, Commit C war keine Katastrophe, sondern nur ein bisschen daneben. Sie möchten das Festschreiben rückgängig machen, aber Ihre Änderungen für ein wenig Bearbeitung beibehalten, bevor Sie ein besseres Festschreiben durchführen. Von hier aus beginnend mit C als KOPF:
Sie können dies tun, indem Sie Folgendes weglassen
--hard
:In diesem Fall ist das Ergebnis:
In beiden Fällen ist HEAD nur ein Zeiger auf das letzte Commit. Wenn Sie a
git reset HEAD~1
ausführen, weisen Sie Git an, den HEAD-Zeiger um ein Commit zurückzusetzen. Aber (es sei denn, Sie verwenden--hard
) lassen Sie Ihre Dateien wie sie waren.git status
Zeigt nun die Änderungen an, die Sie in C eingecheckt haben. Sie haben nichts verloren!Für die leichteste Berührung können Sie sogar Ihr Commit rückgängig machen, aber Ihre Dateien und Ihren Index belassen :
Dies lässt nicht nur Ihre Dateien in Ruhe, sondern auch Ihren Index in Ruhe. Wenn Sie dies tun
git status
, werden Sie feststellen, dass sich dieselben Dateien im Index befinden wie zuvor. Tatsächlich könntengit commit
Sie direkt nach diesem Befehl das Commit wiederholen, das Sie gerade hatten.Noch etwas: Angenommen, Sie zerstören ein Commit wie im ersten Beispiel, stellen dann aber fest, dass Sie es doch gebraucht haben ? Pech, oder?
Nein, es gibt immer noch einen Weg, es zurückzubekommen. Geben Sie
git reflog
und finden Sie eine Liste von (Teil-) begehen sehen shas (das heißt, Hashes) , dass Sie in bewegten sich haben Finden Sie die commit Sie zerstört, und dies tun.:Sie haben dieses Commit jetzt wiederbelebt. Commits werden in Git 90 Tage lang nicht zerstört, daher können Sie normalerweise zurückgehen und eines retten, das Sie nicht loswerden wollten.
quelle
git reset --hard~1
verweist der Master-Zweig auf das letzte Commit innerhalb des Feature-Zweigs. In diesem Fall sollte anstelle des relativen Befehls die spezifische Festschreibungs-ID verwendet werden.--hard
aber was ich nicht realisiert habe, ist, dass all meine nicht inszenierten Änderungen in meinem Arbeitsbaum auch zerstört werden! Ich wollte diese Dateien als Teil eines späteren Commits festschreiben. Jetzt scheint es unmöglich, diese Dateien zurückzubekommen - ich habe sogar die Lösung ausprobiert, über die Sie geschrieben haben,reflog
aber dadurch wurden die zuvor nicht bereitgestellten Änderungen nicht wiederhergestellt.Es gibt zwei Möglichkeiten, Ihr letztes Commit "rückgängig zu machen", je nachdem, ob Sie Ihr Commit bereits öffentlich gemacht haben oder nicht (in Ihr Remote-Repository verschoben):
So machen Sie ein lokales Commit rückgängig
Angenommen, ich habe lokal festgeschrieben, aber jetzt möchte ich dieses Festschreiben entfernen.
Um alles wieder so zu machen, wie es vor dem letzten Commit war, müssen wir
reset
das Commit vorHEAD
:Jetzt
git log
wird gezeigt, dass unser letztes Commit entfernt wurde.So machen Sie ein öffentliches Commit rückgängig
Wenn Sie Ihre Commits bereits veröffentlicht haben, möchten Sie ein neues Commit erstellen, das die Änderungen "zurücksetzt", die Sie in Ihrem vorherigen Commit (aktueller HEAD) vorgenommen haben.
Ihre Änderungen werden nun rückgängig gemacht und können von Ihnen übernommen werden:
Weitere Informationen finden Sie unter Git Basics - Undoing Things .
quelle
git revert HEAD^
ist nicht die vorherige, ist die vorherige der vorherigen. Ich habe:git revert HEAD
und dann nochmal drücken und es hat funktioniert :)Fügen Sie Dateien hinzu / entfernen Sie sie, um die gewünschten Ergebnisse zu erzielen:
Ändern Sie dann das Commit:
Das vorherige, fehlerhafte Commit wird bearbeitet, um den neuen Indexstatus widerzuspiegeln. Mit anderen Worten, es ist, als hätten Sie den Fehler überhaupt nicht gemacht.
Beachten Sie, dass Sie dies nur tun sollten, wenn Sie noch nicht gedrückt haben. Wenn Sie gepusht haben, müssen Sie nur einen Fix normal festschreiben.
quelle
git rm --cached
diese Option , um die Dateien im Dateisystem zu behalten und sie nur aus dem Git-Index zu löschen!oder
Warnung: Mit dem obigen Befehl werden die Änderungen an den
.java
Dateien (und allen anderen Dateien), die Sie festschreiben möchten, dauerhaft entfernt .Das
hard reset
toHEAD-1
setzt Ihre Arbeitskopie auf den Status des Commits vor Ihrem falschen Commit.quelle
git commit -a -m ""
odergit commit -am ""
natürlich! :]git stash
, danngit stash pop
So ändern Sie das letzte Commit
Ersetzen Sie die Dateien im Index:
Wenn es sich um eine private Niederlassung handelt, ändern Sie das Commit:
Wenn es sich um einen gemeinsam genutzten Zweig handelt, führen Sie ein neues Commit durch:
( Um ein vorheriges Commit zu ändern , verwenden Sie die fantastische interaktive Rebase .)
ProTip ™: Fügen Sie
*.class
einen Gitignore hinzu , um dies zu verhindern.So setzen Sie ein Commit zurück
Das Ändern eines Commits ist die ideale Lösung, wenn Sie das letzte Commit ändern müssen. Eine allgemeinere Lösung ist dies jedoch
reset
.Sie können Git auf jedes Commit zurücksetzen mit:
Wo
N
ist die Anzahl der Commits zuvorHEAD
und wird@~
auf das vorherige Commit zurückgesetzt.Anstatt das Commit zu ändern, können Sie Folgendes verwenden:
Schauen Sie sich
git help reset
insbesondere die Abschnitte an--soft
--mixed
und--hard
, um besser zu verstehen, was dies bewirkt.Reflog
Wenn Sie es vermasseln, können Sie immer das Reflog verwenden, um abgelegte Commits zu finden:
quelle
git revert
ein separater Befehl ist -, der im Grunde ein einzelnes Kommimt zurücksetzt.Verwenden Sie
git revert <commit-id>
.Um die Commit-ID zu erhalten, verwenden Sie einfach
git log
.quelle
git revert commit-id
gearbeitet wie ein Zauber. Dann müssen Sie natürlich Ihre Änderungen vorantreiben.git cherry-pick <<erroneous-commit-sha>>
@astronomerdave. Von, Mr. Fast 2 Jahre zu spät zur Party.Wenn Sie vorhaben, ein lokales Commit vollständig rückgängig zu machen, was auch immer Sie am Commit geändert haben, und wenn Sie sich darüber keine Sorgen machen, führen Sie einfach den folgenden Befehl aus.
(Dieser Befehl ignoriert Ihr gesamtes Commit und Ihre Änderungen gehen vollständig in Ihrem lokalen Arbeitsbaum verloren.) Wenn Sie Ihr Commit rückgängig machen möchten, aber Ihre Änderungen im Staging-Bereich (vor dem Commit genau wie danach
git add
) möchten, führen Sie den folgenden Befehl aus.Jetzt kommen Ihre festgeschriebenen Dateien in den Staging-Bereich. Angenommen, Sie möchten die Dateien auf die Bühne bringen, weil Sie einen falschen Inhalt bearbeiten müssen, und führen dann den folgenden Befehl aus
Jetzt werden festgeschriebene Dateien aus dem bereitgestellten Bereich in den nicht bereitgestellten Bereich übertragen. Jetzt können Dateien bearbeitet werden. Was auch immer Sie ändern, Sie möchten sie bearbeiten und hinzufügen und ein neues Commit durchführen.
Mehr
quelle
Wenn Sie Git Extras installiert haben, können Sie
git undo
das letzte Commit rückgängig machen.git undo 3
macht die letzten drei Commits rückgängig.quelle
Ich wollte die letzten fünf Commits in unserem gemeinsam genutzten Repository rückgängig machen. Ich habe die Revisions-ID nachgeschlagen, auf die ich zurücksetzen wollte. Dann habe ich folgendes eingegeben.
quelle
Ich bevorzuge die Verwendung
git rebase -i
für diesen Job, da eine schöne Liste angezeigt wird, in der ich die Commits auswählen kann, die entfernt werden sollen. Es ist vielleicht nicht so direkt wie einige andere Antworten hier, aber es fühlt sich einfach richtig an .Wählen Sie aus, wie viele Commits Sie auflisten möchten, und rufen Sie dann wie folgt auf (um die letzten drei zu registrieren).
Beispielliste
Dann entfernt Git Commits für jede Zeile, die Sie entfernen.
quelle
So beheben Sie das vorherige lokale Commit
Verwenden Sie git-gui (oder ähnliches), um a auszuführen
git commit --amend
. Über die GUI können Sie einzelne Dateien zum Commit hinzufügen oder daraus entfernen. Sie können auch die Festschreibungsnachricht ändern.So machen Sie das vorherige lokale Commit rückgängig
Setzen Sie einfach Ihren Zweig auf den vorherigen Speicherort zurück (z. B. mit
gitk
odergit rebase
). Übernehmen Sie dann Ihre Änderungen von einer gespeicherten Kopie erneut. Nach der Speicherbereinigung in Ihrem lokalen Repository ist das unerwünschte Festschreiben nie aufgetreten. Verwenden Sie dazu all dies in einem einzigen Befehlgit reset HEAD~1
.Ein Wort der Warnung : Die unachtsame Verwendung von
git reset
ist eine gute Möglichkeit, Ihre Arbeitskopie in einen verwirrenden Zustand zu versetzen. Ich empfehle Git-Neulingen, dies zu vermeiden, wenn sie können.So machen Sie ein öffentliches Commit rückgängig
Führen Sie einen Reverse Cherry Pick ( Git-Revert ) durch, um die Änderungen rückgängig zu machen.
Wenn Sie noch keine weiteren Änderungen in Ihrem Zweig vorgenommen haben, können Sie einfach ...
Verschieben Sie dann Ihren aktualisierten Zweig in das freigegebene Repository.
In der Festschreibungshistorie werden beide Festschreibungen getrennt angezeigt .
Erweitert: Korrektur des privaten Zweigs im öffentlichen Repository
Dies kann gefährlich sein - stellen Sie sicher, dass Sie eine lokale Kopie des Zweigs zum Zurücksetzen haben.
Beachten Sie auch: Sie möchten dies nicht tun, wenn möglicherweise jemand anderes an der Zweigstelle arbeitet.
Räumen Sie Ihre Filiale vor Ort auf und wiederholen Sie den Vorgang ...
Im Normalfall brauchen Sie sich wahrscheinlich keine Sorgen zu machen, dass Ihr Commit-Verlauf für private Niederlassungen makellos ist. Drücken Sie einfach ein Follow-up-Commit (siehe 'So machen Sie ein öffentliches Commit rückgängig' oben) und führen Sie später eine Squash-Zusammenführung durch , um den Verlauf auszublenden.
quelle
gitk --all $(git reflog | cut -c1-7)&
Dies kann hilfreich sein, um die vorherige Revision zu finden, wenn Sie ein Commit "--amend" rückgängig machen möchten.git reset
git push origin (branch_name) --force
Wenn Sie es dauerhaft rückgängig machen möchten und ein Repository geklont haben
Die Commit-ID kann von gesehen werden
Dann können Sie tun -
quelle
git reset --hard
, aber wenn Sie die letzten "n" Commits hart entfernen müssen, geben Sie eine SHAWenn Sie Junk begangen, aber nicht gepusht haben,
ODER
quelle
HEAD~1
den tatsächlichen Hash verwenden können, der vongit log --stat
oder durch angezeigt wirdgit reflog
- nützlich, wenn Sie mehr als ein Commit rückgängig machen müssen.In SourceTree (GUI für GitHub) können Sie mit der rechten Maustaste auf das Commit klicken und ein 'Reverse Commit' durchführen. Dies sollte Ihre Änderungen rückgängig machen.
Auf dem Terminal:
Sie können alternativ verwenden:
Oder:
quelle
Ein einziger Befehl:
Es funktioniert hervorragend, das letzte lokale Commit rückgängig zu machen!
quelle
Setzen Sie es einfach mit dem folgenden Befehl zurück
git
:Erklären Sie: Was
git reset
bedeutet das ? Es handelt sich im Grunde genommenreset
um ein Commit, zu dem Sie zurückkehren möchten. Wenn Sie es dann mit dem--soft
Schlüssel kombinieren , wird es zurückgehen, aber die Änderungen in Ihren Dateien behalten, damit Sie wieder auf die Bühne zurückkehren Was die Datei gerade hinzugefügt wurde,HEAD
ist der Kopf des Zweigs und wenn Sie mit kombinieren~1
(in diesem Fall verwenden Sie auchHEAD^
), wird nur ein Commit zurückgegeben, was Sie wollen ...Ich erstelle die Schritte in der Abbildung unten detaillierter für Sie, einschließlich aller Schritte, die in realen Situationen auftreten können, und des Festschreibens des Codes:
quelle
Wie mache ich das letzte Git-Commit rückgängig?
Um alles wieder so zu machen, wie es vor dem letzten Commit war, müssen wir das Commit vor HEAD zurücksetzen.
Wenn Sie Ihre vorgenommenen Änderungen nicht beibehalten möchten:
Wenn Sie Ihre Änderungen behalten möchten:
Überprüfen Sie nun Ihr Git-Protokoll. Es wird angezeigt, dass unser letztes Commit entfernt wurde.
quelle
"Setzen Sie den Arbeitsbaum auf das letzte Commit zurück"
"Unbekannte Dateien aus dem Arbeitsbaum entfernen"
siehe - Git-Kurzreferenz
HINWEIS: Mit diesem Befehl wird Ihr vorheriges Commit gelöscht. Verwenden Sie es daher mit Vorsicht!
git reset --hard
ist sicherer.quelle
Verwenden Sie Reflog, um einen korrekten Status zu finden
REFLOG VOR DEM RESET
Wählen Sie das richtige Reflog (in meinem Fall f3cb6e2) und geben Sie ein
Danach wird der Repo-HEAD auf diesen HEADid zurückgesetzt NACH RESET LOG zurückgesetzt
Schließlich sieht das Reflog wie auf dem Bild unten aus
REFLOG FINAL
quelle
Erster Lauf:
Es zeigt Ihnen alle möglichen Aktionen, die Sie in Ihrem Repository ausgeführt haben, z. B. Festschreiben, Zusammenführen, Ziehen usw.
Dann mach:
quelle
Letztes Commit rückgängig machen:
git reset --soft HEAD^
odergit reset --soft HEAD~
Dadurch wird das letzte Commit rückgängig gemacht.
Hier
--soft
bedeutet Zurücksetzen in die Inszenierung.HEAD~
oderHEAD^
bedeutet, sich zu bewegen, um vor HEAD zu begehen.Ersetzen Sie das letzte Commit durch ein neues Commit:
Das letzte Commit wird durch das neue Commit ersetzt.
quelle
Ein anderer Weg:
Überprüfen Sie den Zweig, den Sie zurücksetzen möchten, und setzen Sie dann Ihre lokale Arbeitskopie auf das Commit zurück, das Sie als letztes auf dem Remote-Server verwenden möchten (alles, was danach passiert, wird auf Wiedersehen). Dazu habe ich in SourceTree mit der rechten Maustaste auf "BRANCHNAME auf dieses Commit zurücksetzen" geklickt und ausgewählt.
Navigieren Sie dann zum lokalen Verzeichnis Ihres Repositorys und führen Sie den folgenden Befehl aus:
Dadurch werden alle Commits nach dem aktuellen in Ihrem lokalen Repository gelöscht, jedoch nur für diesen einen Zweig.
quelle
Geben
git log
Sie den letzten Commit-Hash-Code ein, suchen Sie ihn und geben Sie Folgendes ein:quelle
In meinem Fall habe ich versehentlich einige Dateien festgeschrieben, die ich nicht wollte. Also habe ich folgendes gemacht und es hat funktioniert:
Überprüfen Sie die Ergebnisse mit gitk oder git log --stat
quelle
Führen Sie dies einfach in Ihrer Befehlszeile aus:
quelle
Es gibt viele Möglichkeiten, dies zu tun:
Git-Befehl zum Rückgängigmachen des letzten Commits / vorherigen Commits:
Warnung: Verwenden Sie --hard nicht, wenn Sie nicht wissen, was Sie tun. --hard ist zu gefährlich und kann Ihre Dateien löschen.
Der grundlegende Befehl zum Zurücksetzen des Commits in Git lautet:
oder
COMMIT-ID : ID für das Commit
n: ist die Anzahl der letzten Commits, die Sie zurücksetzen möchten
Sie können die Commit-ID wie folgt erhalten:
wo d81d3f1 und be20eb8 Commit-ID.
Nun sehen wir uns einige Fälle an:
Angenommen, Sie möchten das letzte Commit 'd81d3f1' zurücksetzen. Hier sind zwei Möglichkeiten:
oder
Angenommen, Sie möchten das Commit 'be20eb8' zurücksetzen:
Für detailliertere Informationen können Sie auch einige andere Befehle zum Zurücksetzen des Kopfes auf einen bestimmten Status verwenden:
quelle
git reset --hard HEAD~1
ist zu gefährlich ! Dadurch wird nicht nur das letzte Festschreiben abgebrochen, sondern das Repo wird vollständig auf das vorherige Festschreiben zurückgesetzt. Sie werden also alle Änderungen verlieren, die beim letzten Festschreiben festgeschrieben wurden!git push -f <remote> HEAD@{1}:<branch>
Für ein lokales Commit
oder wenn Sie sich nicht genau erinnern, um welches Commit es sich handelt, können Sie es verwenden
Für ein Push-Commit
Die richtige Methode zum Entfernen von Dateien aus dem Repository-Verlauf ist die Verwendung
git filter-branch
. Das ist,Ich empfehle Ihnen jedoch, diesen Befehl mit Vorsicht zu verwenden. Lesen Sie mehr unter git-filter-branch (1) Manual Page .
quelle
Es gibt zwei Hauptszenarien
Sie haben das Commit noch nicht vorangetrieben
Wenn das Problem zusätzliche Dateien waren, die Sie festgeschrieben haben (und die Sie nicht im Repository haben möchten), können Sie sie mit
git rm
und anschließend mit festschreiben--amend
Sie können auch ganze Verzeichnisse
-r
mit anderen Bash- Befehlen entfernen oder sogar mit diesen kombinierenNach dem Entfernen der Dateien können Sie mit der Option --amend festschreiben
Dadurch wird Ihr aktuelles lokales Commit neu geschrieben, wobei die zusätzlichen Dateien entfernt werden. Diese Dateien werden also niemals per Push gesendet und auch von GC aus Ihrem lokalen .git-Repository entfernt.
Sie haben das Commit bereits verschoben
Sie können dieselbe Lösung wie im anderen Szenario anwenden und dann
git push
mit der-f
Option arbeiten, dies wird jedoch nicht empfohlen da der Remote-Verlauf mit einer abweichenden Änderung überschrieben wird (dies kann Ihr Repository durcheinander bringen).Stattdessen müssen Sie das Commit ohne
--amend
ausführen (denken Sie daran, dass -amend`: Diese Option schreibt den Verlauf des letzten Commits neu).quelle
So setzen Sie alle nicht festgeschriebenen Änderungen dauerhaft zurück, um auf die vorherige Version zurückzusetzen:
quelle
--soft
Sie die Änderungen zu halten , wieuncommitted changes
,--hard
atomisieren das Commit vollständig und wieder zurück nach der anderen. Denken Sie daran, solche Vorgänge nur für Änderungen durchzuführen, die noch nicht gepusht wurden.git reset --hard
.git
ihr Inhalt in ihrer Objektdatenbank gespeichert. Der gespeicherte Inhalt wird nur entfernt, wenn die Speicherbereinigung ausgeführt wird. Es ist daher möglich, die zuletzt bereitgestellte Version einer Datei wiederherzustellen, die zumgit reset --hard
Zeitpunkt der Ausführung noch nicht bereitgestellt wurde (weitere Informationen finden Sie in den oben verlinkten Beiträgen).