Angenommen, Ihr Zweig heißt master
sowohl hier als auch in der Ferne, und dass Ihre Fernbedienung heißt origin
könnten Sie tun:
git reset --hard <commit-hash>
git push -f origin master
Sie sollten dies jedoch vermeiden, wenn jemand anderes mit Ihrem entfernten Repository arbeitet und Ihre Änderungen übernommen hat. In diesem Fall wäre es besser, wenn Sie zurückkehren die Commits, die Sie nicht wollen, und pushen Sie dann wie gewohnt.
Aktualisierung: Sie haben weiter unten erklärt, dass andere Leute die von Ihnen vorgenommenen Änderungen zurückgenommen haben, also ist es Es ist besser, eine neue Übertragung zu erstellen, die all diese Änderungen rückgängig macht. . Eine ausführliche Erläuterung der Möglichkeiten findet sich unter diese Antwort von Jakub Narebski . Welche Methode am besten geeignet ist, hängt davon ab, wie viele Übertragungen Sie rückgängig machen wollen und welche Methode für Sie am sinnvollsten ist.
Da aus Ihrer Frage hervorgeht, dass Sie bereits git reset --hard
zum Zurücksetzen Ihrer master
Zweig, müssen Sie möglicherweise mit der Verwendung von git reset --hard ORIG_HEAD
um Ihren Zweig wieder an die vorherige Stelle zu verschieben. (Wie immer bei git reset --hard
stellen Sie sicher, dass git status
sauber ist, dass Sie auf dem richtigen Zweig sind und dass Sie wissen, dass git reflog
als Werkzeug zur Wiederherstellung scheinbar verlorener Commits). Sie sollten auch überprüfen, ob ORIG_HEAD
weist auf die richtige Übergabe hin, mit git show ORIG_HEAD
.
Fehlersuche:
Wenn Sie eine Meldung wie " ! [remote abgelehnt] a60f7d85 -> master (Vor-Empfangshaken abgelehnt) "
dann müssen Sie das Umschreiben der Zweiggeschichte für den jeweiligen Zweig erlauben. In BitBucket heißt es zum Beispiel "Rewriting branch history is not allowed". Es gibt eine Checkbox namens Allow rewriting branch history
die Sie überprüfen müssen.