Ich habe git commit
gefolgt von einem durchgeführt git push
. Wie kann ich diese Änderung sowohl in lokalen als auch in Remote-Repositorys rückgängig machen?
$ git log
commit 364705c23011b0fc6a7ca2d80c86cef4a7c4db7ac8
Author: Michael Silver <Michael [email protected]>
Date: Tue Jun 11 12:24:23 2011 -0700
git
git-push
git-commit
Michael
quelle
quelle
git reset --hard <the-sha-you-want-to-return-to>
.git log --decorate --oneline
Sie diese Option, um herauszufinden, wohin Ihr KOPF zeigt.git reset HEAD~1
wenn Sie nicht möchten, dass Ihre Änderungen weg sind (nicht bereitgestellte Änderungen). Ändern,git push -f [origin] [branch]
Führen Sie im Allgemeinen ein "inverses" Commit durch, indem Sie Folgendes verwenden:
Senden Sie es dann wie gewohnt an die Fernbedienung:
Dadurch wird das Commit nicht gelöscht: Es wird ein zusätzliches Commit ausgeführt, das alles rückgängig macht, was beim ersten Commit ausgeführt wurde. Alles andere, nicht wirklich sicher, besonders wenn die Änderungen bereits weitergegeben wurden.
quelle
git reset
wird nur akzeptiert, wenn Sie die Änderungen noch nicht auf den Server übertragen haben.Zunächst einmal entspannen.
"Nichts ist unter unserer Kontrolle. Unsere Kontrolle ist bloße Illusion.", "Irren ist menschlich"
Ich verstehe, dass Sie Ihren Code unbeabsichtigt angeschoben haben
remote-master
. Das wird in Ordnung sein.1. Ermitteln Sie zunächst den
SHA-1
Wert des Commits, den Sie zurückgeben möchten, z. B. Commit für den Hauptzweig. Führen Sie Folgendes aus:Sie werden eine Reihe von 'f650a9e398ad9ca606b25513bd4af9fe ...' wie Zeichenfolgen zusammen mit jedem der Commits sehen. Kopieren Sie diese Nummer aus dem Commit, das Sie zurückgeben möchten .
2. Geben Sie nun den folgenden Befehl ein:
Sie sollten eine Meldung wie "HEAD is now at" sehen. du bist klar. Was es gerade getan hat, ist, diese Änderung lokal zu reflektieren.
3. Geben Sie nun den folgenden Befehl ein:
du solltest sehen wie
Jetzt ist alles klar. Überprüfen Sie den Master erneut mit "git log". Ihr Fixed_destination_Commit sollte ganz oben auf der Liste stehen.
Gern geschehen (im Voraus;))
AKTUALISIEREN:
Nun sind die Änderungen, die Sie vorgenommen haben, bevor all diese begonnen haben, jetzt weg. Wenn Sie diese harten Arbeiten wieder zurückbringen möchten, ist dies möglich. Dank git reflog und git cherry-pick Befehlen.
Dafür würde ich vorschlagen, diesem Blog oder diesem Beitrag zu folgen .
quelle
git reset HEAD~1
wenn Sie nicht möchten, dass Ihre Änderungen weg sind (nicht bereitgestellte Änderungen). Ändern, festschreiben und erneut drückengit push -f [origin] [branch]
quelle
Sie können eine interaktive Rebase durchführen:
Dadurch wird Ihr Standardeditor aufgerufen. Löschen Sie einfach die Zeile mit dem Commit, das Sie entfernen möchten, um dieses Commit zu löschen.
Sie benötigen natürlich Zugriff auf das Remote-Repository, um diese Änderung auch dort anzuwenden.
Siehe diese Frage: Git: Entfernen ausgewählter Commits aus dem Repository
quelle
Versuchen Sie es mit
Bitte beachten Sie: Hier wird die Commit-ID die ID des Commits angeben, zu dem Sie wechseln möchten, nicht jedoch die ID, die Sie zurücksetzen möchten. Dies war der einzige Punkt, an dem ich auch stecken blieb.
dann drücken
quelle
Alternative:
Erzwingen Sie den Hauptzweig des Ursprungs-Remote-Repositorys auf das übergeordnete Element des letzten Commits
quelle