Kann ich den letzten Git-Push rückgängig machen?

Lesezeit: 2 Minuten

Ein Teammitglied hat letzte Nacht versehentlich einen halben Gig unerwünschter Zips in das Remote-Repo verschoben, als es in Eile war. Ja … oops.

Seitdem hat niemand gezogen oder begangen.

Idealerweise möchte ich einfach “rückgängig” machen, was passiert ist.

Ich habe mir Filter-Zweig angesehen und überlegt, so etwas auszuprobieren

git filter-branch --tree-filter 'rm -f *.zip' HEAD

aber das wäre lokal, und ich kann nicht herausfinden, wie ich es direkt auf dem Remote-Repo machen soll.

Gibt es eine einfachere Möglichkeit, das Geschehene rückgängig zu machen? Wenn sie ihren letzten Commit ändert und erneut pusht, wird das den Push rückgängig machen – dh diese Dateien tatsächlich aus dem Verlauf entfernen?

Wenn sie sie löscht, festschreibt und erneut pusht, bleibt der Inhalt natürlich immer noch im Repo, was nicht gut ist.

  • Es gibt ähnliche Fragen, vielleicht könnten sie helfen: stackoverflow.com/questions/1270514/undoing-a-git-push

    – Anziehen

    10. Juni 2010 um 8:59 Uhr

Danke Don, ich hatte das gesehen, aber irgendwie nicht bemerkt, dass es mein Problem behoben hat, weil ich nur einen Zweig habe.

Ich tat:

git push -f origin 5910117a8fc2c71334251465b54d6d9daeb28d1c:master

Und alles ist wieder so, wie es war.

  • das funktioniert gut. Vielleicht möchten Sie sich einen Moment Zeit nehmen, um darüber nachzudenken, ob es gut ist oder nicht, jemandem mit Zugriff auf das Repo die Möglichkeit zu geben, dies zu tun 🙂 Direkt zum Remote-Repo zu gehen und git reset zu verwenden, um seinen Master-Branch zu verschieben, ist eine weitere Alternative, die dies normalerweise kann alle in Hooks implementierten Berechtigungsprüfungen umgehen.

    – araqnid

    10. Juni 2010 um 12:09 Uhr

  • Vielleicht möchten Sie Folgendes hinzufügen: git reset –hard 5910117a8fc2c71334251465b54d6d9daeb28d1c Dadurch wird sichergestellt, dass Ihre lokale Kopie auch auf diese bestimmte Revision zurückgesetzt wird (andernfalls scheint es, als ob sich Ihr lokales Repo von dem entfernten unterscheidet).

    – Chris R

    26. Juli 2010 um 21:08 Uhr

  • Klarstellung: Der sha-Hash sollte der Hash des letzten GUTEN Commits sein – nicht Ihr schlechter Commit-Push

    – Philfreo

    6. Dezember 2010 um 3:11 Uhr

  • Nur der Vollständigkeit halber sollten Sie angeben, dass man dies tun muss, um den letzten Commit-Hash zu erhalten git log. Ziemlich praktische Antwort, aber.

    – Yanik Rochon

    18. Januar 2013 um 4:17 Uhr

Ich finde

git reset --hard HEAD^
git push -f

sollte zum Trick: Es setzt Ihr lokales Checkout auf den vorherigen Commit zurück (vorausgesetzt, das letzte ist dasjenige, das Sie löschen möchten) und erzwingt, dass es in das Remote-Repository verschoben wird.

1252420cookie-checkKann ich den letzten Git-Push rückgängig machen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy