3 Stimmen

Wie vermeide ich eine "kann vorgespult werden" Nachricht nach einem git reset --hard <sha1>?

Ich habe viele Beiträge zu git reset --hard durchsucht und einen vorzeitig zusammengeführten Branch auf den Zustand eines Commit zurückgesetzt, der etwas weiter in der Historie liegt. Der aktuelle Zustand von "master" sieht gut aus, aber git status sagt mir, dass mein lokaler Branch um 24 Commits hinter origin/master liegt und vorgespult werden kann. Ich kann nicht pushen, ohne zuerst origin/master erneut zusammenzuführen. Gibt es eine Möglichkeit, diese Commits zu überspringen und zu sagen "Ich will sie nicht"?

Das ist ein zentrales Repository-Setup und einer meiner Kollegen hat seinen lang laufenden Entwicklungsbranch versehentlich mit master zusammengeführt und wusste nicht, wie er das rückgängig machen sollte, also habe ich es für ihn probiert.

Zusammenfassung der Befehle (aus dem Gedächtnis, es war ein zweitägiges Durcheinander)

Ich habe den Fehler entdeckt, als ich master geholt und überprüft habe, habe meinen Kollegen informiert. Er konnte das Zurücksetzen nicht schaffen, also habe ich es gemacht

git merge master origin/master
git reset --hard 
git push # wird abgelehnt
git status # gibt mir die Meldung "um x Commits zurück, kann vorgespult werden"

Danke, Hans

3voto

flumpb Punkte 1666

Wenn Sie sicher sind, dass Ihr Git-Verlauf die richtige Version ist und Ihre Kollegen keine Änderungen vorgenommen haben, können Sie diesen Befehl verwenden:

git push --force

Verwenden Sie in Zukunft stattdessen git revert, das einen neuen Commit erstellt, der Änderungen rückgängig macht, anstatt den Verlauf zu überschreiben.

Nochmals, git push --force wird den Verlauf auf der Remote-Seite überschreiben. Sie wurden gewarnt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X