Zum Inhalt springen

Force Push

Männliche Person, frontal, schaut in die Kamera; trägt kariertes Hemd über dunkelfarbigem T‑Shirt; heller Innenraum mit unscharfem Monitor oder Poster links und Fenster rechts.

von Richard Albrecht am 30.10.2026

Ein Force Push überschreibt den Stand auf dem Remote mit dem eigenen, statt daran anzuschließen. Ein gewöhnlicher Push wird abgelehnt, sobald er Commits verdecken würde; der Force Push hebt genau diese Prüfung auf.

Force Push

Ein Push, der den Stand auf dem Remote überschreibt, statt daran anzuschließen.
Beispiel: „Nach dem Force Push fehlten zwei Commits der Kollegin, die am selben Zweig gearbeitet hatte.“

Geschrieben als git push --force oder kurz -f. Die sicherere Fassung heißt --force-with-lease.

Abgrenzung zum gewöhnlichen Push: Der fügt an, der Force Push ersetzt. Sichtbar ist der Unterschied erst, wenn jemand anderes auf dem alten Stand aufgebaut hat.

Wann ein Force Push berechtigt ist

Auf einem Zweig, an dem nur du arbeitest. Wer seine Commits vor dem Zusammenführen aufräumt, also eine Nachricht nachbessert oder mehrere Commits zusammenfasst, schreibt damit die Geschichte um; der Zweig passt danach nicht mehr an den Stand auf dem Server, und nur ein Force Push bringt ihn dorthin.

Das ist der Normalfall in Projekten, die auf eine lesbare Geschichte achten. Solange niemand sonst den Zweig geholt hat, kostet es nichts.

Was ein Force Push auf einem gemeinsamen Zweig anrichtet

Er lässt Commits verschwinden, die jemand anderes gepusht hat. Aus der Sicht des Servers sind sie weg, und wer sie noch lokal hat, bekommt beim nächsten Holen eine Geschichte vorgelegt, die mit seiner nicht mehr zusammenpasst.

Besonders unangenehm ist, dass es niemandem auffällt. Es gibt keine Warnung und keine Meldung; die Arbeit fehlt einfach, und gesucht wird sie meist erst Tage später. Deshalb sperren die meisten Dienste den Force Push auf dem Hauptzweig.

Wie man das Risiko begrenzt

Mit --force-with-lease statt --force. Diese Fassung überschreibt nur, wenn der Server noch auf dem Stand steht, den du zuletzt geholt hast. Hat in der Zwischenzeit jemand gepusht, bricht sie ab.

Verlorene Commits sind übrigens eine Weile wiederzufinden: Auf dem Rechner, der sie erzeugt hat, führt Git ein eigenes Protokoll über jeden Stand, auf dem ein Zweig einmal stand. Wer schnell genug fragt, bekommt sie zurück.

Siehe auch:

Push (Git)

Das Übertragen eigener Commits zum gemeinsamen Stand.

#Deployment & Versionierung

Remote (Git)

Das Repository auf einem Server, auf das sich ein Team geeinigt hat.

#Deployment & Versionierung

Commit

Ein festgehaltener Stand des Projekts, mit Zeitpunkt, Urheber und Begründung.

#Deployment & Versionierung

Repository

Der Ort, an dem ein Projekt samt seiner gesamten Geschichte liegt.

#Deployment & Versionierung

Git

Das Werkzeug, das jede Änderung an einem Projekt festhält und mehrere Stände nebeneinander erlaubt.

#Deployment & Versionierung

Pull (Git)

Das Holen des Remote-Stands mit anschließendem Zusammenführen.

#Deployment & Versionierung