
michael
Ich habe durchgeführt git commit
gefolgt von einem git push
. Wie kann ich diese Änderung sowohl in lokalen als auch in Remote-Repositories rückgängig machen?
$ git log
commit 364705c23011b0fc6a7ca2d80c86cef4a7c4db7ac8
Author: Michael Silver <Michael [email protected]>
Date: Tue Jun 11 12:24:23 2011 -0700

Alexander Gross
git reset --hard HEAD~1
git push -f <remote> <branch>
(Beispiel Push: git push -f origin bugfix/bug123
)
Dadurch wird der letzte Commit rückgängig gemacht und der aktualisierte Verlauf auf die Fernbedienung übertragen. Sie müssen die passieren -f
weil Sie den Upstream-Verlauf in der Fernbedienung ersetzen.
Führen Sie im Allgemeinen einen “inversen” Commit durch, indem Sie Folgendes verwenden:
git revert 364705c
Senden Sie es dann wie gewohnt an die Fernbedienung:
git push
Dadurch wird der Commit nicht gelöscht: Es wird ein zusätzlicher Commit erstellt, der alles rückgängig macht, was der erste Commit getan hat. Alles andere, nicht wirklich ungefährlich, vor allem wenn die Änderungen bereits propagiert wurden.

kmonsoor
Zunächst einmal entspannen.
“Nichts steht unter unserer Kontrolle. Unsere Kontrolle ist reine Illusion.”, “Irren ist menschlich”
Ich verstehe, dass Sie Ihren Code unbeabsichtigt verschoben haben remote-master
. DAS wird in Ordnung sein.
1. Holen Sie sich zunächst die SHA-1
Wert des Commit, das Sie zurückzugeben versuchen, z. B. Commit in den Master-Zweig. Führen Sie dies aus:
git log
Sie werden eine Reihe von “f650a9e398ad9ca606b25513bd4af9fe …” -ähnlichen Zeichenfolgen zusammen mit jedem der Commits sehen. Kopieren Sie diese Nummer aus dem Commit, das Sie zurückkommen möchte.
2. Geben Sie nun den folgenden Befehl ein:
git reset --hard your_that_copied_string_but_without_quote_mark
Sie sollten eine Meldung wie “HEAD is now at” sehen. du bist auf klar. Was es gerade getan hat, ist, diese Veränderung lokal widerzuspiegeln.
3. Geben Sie nun den folgenden Befehl ein:
git push -f
Sie sollten sehen, wie
“Warnung: push.default ist nicht gesetzt; sein impliziter Wert hat sich geändert in….. … Total 0 (delta 0), reused 0 (delta 0) … …your_branch_name -> master (forced update) .”
Jetzt sind Sie alle klar. Überprüfen Sie den Master erneut mit “git log”, Ihr fixed_destination_commit sollte ganz oben auf der Liste stehen.
Gerne (im Voraus ;))
AKTUALISIEREN:
Nun, die Änderungen, die Sie vorgenommen haben, bevor all dies begann, sind jetzt weg.
Wenn Sie diese harte Arbeit wieder zurückbringen möchten, ist dies möglich. Dank an Git-Relogund git Kirschpickel Befehle.
Dafür würde ich vorschlagen, bitte zu folgen dieses Blog oder dieser Beitrag.
git reset HEAD~1
wenn Sie nicht möchten, dass Ihre Änderungen weg sind (nicht bereitgestellte Änderungen). Ändern, verpflichten und erneut pushen git push -f [origin] [branch]
Versuchen Sie es mit
git reset --hard <commit id>
Bitte beachten Sie: Hier ist die Commit-ID die ID des Commits, zu dem Sie gehen möchten, aber nicht die ID, die Sie zurücksetzen möchten. das war der einzige punkt wo ich auch hängen blieb.
dann drücken
git push -f <remote> <branch>

Gemeinschaft
Sie können eine interaktive Rebase durchführen:
git rebase -i <commit>
Dadurch wird Ihr Standard-Editor angezeigt. Löschen Sie einfach die Zeile mit dem Commit, das Sie entfernen möchten, um diesen 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

MicRum
Alternative:
git push origin +364705c23011b0fc6a7ca2d80c86cef4a7c4db7ac8^:master
Erzwingen Sie den Master-Zweig des Ursprungs-Remote-Repositorys zum übergeordneten Element des letzten Commit
10023100cookie-checkWie kann ich ein `git commit` lokal und auf einem Remote nach `git push` rückgängig machenyes