Frage Wie kann ich ein Commit auf GitHub entfernen?


Ich habe "versehentlich" einen Commit an GitHub gesendet.

Ist es möglich, dieses Commit zu entfernen?

Ich möchte mein GitHub-Repository so wiederherstellen, wie es vor diesem Commit war.


1404
2018-01-15 23:20


Ursprung


Antworten:


Hinweis: Siehe bitte Alternative zu git rebase -i in den Kommentaren unten-

git reset --soft HEAD^

Entfernen Sie zunächst die Festschreibung in Ihrem lokalen Repository. Sie können dies mit verwenden git rebase -i. Zum Beispiel, wenn es deine letzte Verpflichtung ist, kannst du tun git rebase -i HEAD~2 und lösche die zweite Zeile im erscheinenden Editorfenster.

Dann erzwingen Sie den Push-Vorgang mit GitHub git push origin +branchName

Sehen Git Magic Kapitel 5: Lehren der Geschichte - und dann einige für weitere Informationen (d. h. wenn Sie ältere Commits entfernen möchten).

Oh, und wenn dein Arbeitsbaum schmutzig ist, musst du einen machen git stash zuerst und dann a git stash apply nach.


1016
2018-01-15 23:24



git push -f origin HEAD^:master

Das sollte den Push "rückgängig machen".


853
2018-01-16 00:11



Für eine einfache Wiederherstellung, wenn es nur ein Fehler ist (vielleicht hast du ein Repo gegabelt, dann bist du zum Original anstatt zu einem neuen gedrängt worden), hier ist eine andere Möglichkeit:

git reset --hard 71c27777543ccfcb0376dcdd8f6777df055ef479

Offensichtlich tauschen Sie diese Zahl gegen die Nummer des Commits ein, zu dem Sie zurückkehren möchten.

Alles, was seitdem passiert ist, wird gelöscht, sobald Sie erneut drücken. Um dies zu tun, wäre der nächste Schritt:

git push --force

293
2018-04-21 20:26



  1. git log um herauszufinden, welche Commit Sie wiederherstellen möchten

  2. git push origin +7f6d03:master während 7f6d03 das Commit vor dem falsch geschobenen Commit ist. + war für force push

Und das ist es.

Hier ist eine sehr gute Anleitung, die Ihr Problem löst, einfach und einfach!


70
2018-02-09 11:58



Sie müssen Ihren Cache löschen, damit er vollständig gelöscht wird. Diese Hilfeseite von git wird dir helfen. (Es hat mir geholfen) http://help.github.com/remove-sensitive-data/


34
2017-07-27 22:38



Falls Sie die Änderungen nach dem Löschen beibehalten möchten:

Beachten Sie, dass diese Lösung funktioniert, wenn das zu entfernende Commit das letzte Committed ist.


1 - Kopieren Sie die Commit-Referenz, zu der Sie zurückgehen möchten, aus dem Protokoll:

git log

2 - Setzen Sie git auf die Commit-Referenz zurück:

 git reset <commit_ref>

3 - Verstecke / speichere die lokalen Änderungen von dem falschen Commit, um es später zu verwenden, nachdem du zu remote gepusht hast:

 git stash

4 - Übertragen Sie die Änderungen an das Remote-Repository (-f oder --force):

git push -f

5 - Holen Sie die gespeicherten Änderungen in das lokale Repository zurück:

git stash apply

7 - Falls Sie in den Änderungen nicht gepackte / neue Dateien haben, müssen Sie diese vor dem Commit zu git hinzufügen:

git add .

6 - Fügen Sie die zusätzlichen Änderungen hinzu, die Sie benötigen, und übergeben Sie dann die benötigten Dateien (oder verwenden Sie einen Punkt '.' Anstelle des Dateinamens), um alle Dateien im lokalen Repository zu übernehmen:

git commit -m "<new_commit_message>" <file1> <file2> ...

oder

git commit -m "<new_commit_message>" .

31
2018-06-07 14:44



Benutzen git revert um deinen Push rückgängig zu machen.

git-revert - Setzen Sie einige bestehende Commits zurück

git revert [--edit | --no-edit] [-n] [-m parent-number] [-s] <commit>...
git revert --continue
git revert --quit
git revert --abort

Stellen Sie die Änderungen wieder her, die mit den zugehörigen Patches eingeführt wurden, und notieren Sie einige neue Commits, die sie aufzeichnen. Dies erfordert, dass Ihr Arbeitsbaum sauber ist (keine Änderungen vom HEAD-Commit).


24
2017-07-17 08:21



1. git reset HEAD^ --hard
2. git push origin -f

Das funktioniert für mich.


19
2017-08-10 08:41