Angenommen, Ihre Niederlassung wird master
sowohl hier als auch remote aufgerufen , und Ihre Fernbedienung wird aufgerufen origin
, könnten Sie Folgendes tun:
git reset --hard <commit-hash>
git push -f origin master
Sie sollten dies jedoch vermeiden, wenn jemand anderes mit Ihrem Remote-Repository arbeitet und Ihre Änderungen abgerufen hat. In diesem Fall wäre es besser, zufällt Commits , dass Sie nicht wollen, dann ganz normal drücken.
Update: Sie haben unten erklärt, dass andere Personen die von Ihnen vorgenommenen Änderungen übernommen haben. Daher ist es besser, ein neues Commit zu erstellen, das alle diese Änderungen zurücksetzt . In dieser Antwort von Jakub Narębski finden Sie eine schöne Erklärung Ihrer Möglichkeiten, dies zu tun . Welche Methode am bequemsten ist, hängt davon ab, wie viele Commits Sie zurücksetzen möchten und welche Methode für Sie am sinnvollsten ist.
Da aus Ihrer Frage hervorgeht, dass Sie git reset --hard
Ihren master
Zweig bereits zurückgesetzt haben , müssen Sie möglicherweise zunächst verwenden git reset --hard ORIG_HEAD
, um Ihren Zweig wieder an den vorherigen Ort zu verschieben. ( Stellen Sie wie immer git reset --hard
sicher, dass dies git status
sauber ist, dass Sie sich auf dem richtigen Zweig befinden und dass Sie sich git reflog
als Werkzeug zur Wiederherstellung scheinbar verlorener Commits bewusst sind .) Sie sollten auch überprüfen, ob ORIG_HEAD
auf das richtige Commit verweist, mit git show ORIG_HEAD
.
Fehlerbehebung:
Wenn Sie eine Nachricht wie " ! [Remote abgelehnt] a60f7d85 -> master (Hook vor dem Empfang abgelehnt) " erhalten
Dann müssen Sie das Umschreiben des Zweigverlaufs für den jeweiligen Zweig zulassen. In BitBucket heißt es beispielsweise "Das Umschreiben des Zweigverlaufs ist nicht zulässig". Es gibt ein Kontrollkästchen mit dem Namen, Allow rewriting branch history
das Sie aktivieren müssen.
origin/master
nicht von anderen Benutzern gezogen und gedrückt wurden? Das Ändern des Verlaufs eines öffentlichen (dh nicht lokalen) Repositorys sollten Sie jederzeit vermeiden.