Git: git pull "überschreiben", lokale Dateien auf Remote-Stand zurücksetzen

Tutorial: So setzt du deinen lokalen Branch auf den Stand von origin/main zurück – inklusive Backup-Branch und Umgang mit uncommitted Änderungen.

Dieser Artikel hat eine Lesedauer von 2 minutes Minuten.

Git: git pull

Manchmal ist der lokale Stand einfach kaputt: Konflikte, falsche Dateien, experimentelle Änderungen und du willst nur noch eins:

Alles lokal wegwerfen und exakt den Stand vom Remote übernehmen.

Wichtig: Ein normales git pull ist dafür nicht gedacht. Was du suchst, ist ein kontrollierter Reset auf den Remote-Branch.

Achtung: Dabei gehen lokale Änderungen verloren

Warnung:
Alle uncommitted Änderungen an getrackten Dateien gehen verloren auch wenn sie bereits gestaged sind (git add).

  • getrackte Dateien: betroffen
  • ungetrackte Dateien (nicht von Git verwaltet): bleiben unangetastet

Wenn du etwas behalten willst: stash oder committen, bevor du weitermachst.

Kurzfassung (Executive Summary)

git fetch --all
git branch backup-main
git reset --hard origin/main

Schritt 1: Remote-Stand holen (ohne Merge)

git fetch --all

git fetch lädt die neuesten Änderungen vom Remote herunter, ohne etwas zu mergen oder zu rebasen. Das ist die sichere Basis für alles Weitere.

Schritt 2: Backup deines aktuellen Branches erstellen

Bevor du hart zurücksetzt, lege dir eine Sicherung an:

git branch backup-main

Damit hast du jederzeit einen Ankerpunkt, falls du doch noch etwas aus dem alten Stand brauchst.

Schritt 3: Lokal exakt auf Remote-Stand zurücksetzen

Jetzt setzt du deinen lokalen Branch auf den Stand von origin/main zurück:

git reset --hard origin/main

Was passiert dabei:

Git setzt den Branch-Zeiger auf denselben Commit wie origin/main

–hard aktualisiert deinen Working Tree und Index so, dass alle Dateien exakt dem Remote-Stand entsprechen

lokale uncommitted Änderungen an getrackten Dateien werden verworfen

Lokale Commits behalten (aber trotzdem resetten)

Wenn du lokale Commits nicht verlieren willst, kannst du sie vor dem Reset in einen neuen Branch „parken“:

git checkout main
git branch new-branch-to-save-current-commits
git fetch --all
git reset --hard origin/main

Danach:

  • main entspricht exakt origin/main
  • deine bisherigen lokalen Commits sind weiterhin in new-branch-to-save-current-commits vorhanden

Uncommitted Änderungen retten: stash

Wenn du uncommitted Änderungen behalten willst, sichere sie vorher:

git stash

Nach dem Reset kannst du sie wieder anwenden:

git stash pop

Hinweis: stash pop kann Merge-Konflikte erzeugen, wenn sich die gleichen Dateien auch remote verändert haben.

Anderes Thema: Git: Remote-Branch auschecken (einfach erklärt)

Eine Idee im Kopf?


Dann kontaktier mich doch


Wenn du Social-Media-Unterstützung brauchst oder ein Thema journalistisch sauber aufbereiten willst, melde dich.